Swing/HideActionText のバックアップ(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/HideActionText へ行く。
- category: swing folder: HideActionText title: JButtonのテキストとしてActionの名前を適用しないよう設定する tags: [JButton, AbstractButton, Action] author: aterai pubdate: 2017-09-25T13:00:27+09:00 description: JButtonにActionを設定したとき、そのアクション名をJButtonのテキストとして適用しないよう設定します。 image: https://drive.google.com/uc?id=0ByeXYahiJNmHa2J2Q0xkT013OTA
概要
JButton
にAction
を設定したとき、そのアクション名をJButton
のテキストとして適用しないよう設定します。
Screenshot
Advertisement
サンプルコード
Action pasteAction = new DefaultEditorKit.PasteAction();
pasteAction.putValue(Action.LARGE_ICON_KEY, new ColorIcon(Color.GREEN));
JButton button = new JButton("text");
button.setFocusable(false);
button.setAction(pasteAction);
button.setIcon(new ColorIcon(Color.RED));
button.addActionListener(e -> Toolkit.getDefaultToolkit().beep());
button.setHideActionText(false);
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JButton#setHideActionText(false)
を設定した状態でAction
を変更した場合などのテストを行っています。
JButton#setHideActionText(false)
を設定した状態でAction
を変更した場合、そのアクション名やアイコンなどはJButton
に適用されないJButton.setText(...)
、JButton.setIcon(...)
の設定が優先される
JButton#setHideActionText(false)
を設定した状態でも、Action
をnull
(初期状態)に変更するとJButton
のテキストやアイコンはクリアされてしまう- アクションから名前とアイコンが適用された状態で
JButton#setHideActionText(false)
を実行した場合、JButton
のテキストはクリアされるがアイコンは変化しないJButton.setText(...)
、JButton.setIcon(...)
で設定している場合も同様にJButton
のテキストはクリアされるが、アイコンは変化しない
JButton#setHideActionText(...)
の状態にJButton.setText(...)
、JButton.setIcon(...)
は依存しない