Swing/ShowMnemonics の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/ShowMnemonics へ行く。
- Swing/ShowMnemonics の差分を削除
--- category: swing folder: ShowMnemonics title: JMenuItemなどのMnemonicの下線を常に表示する tags: [JMenuItem, WindowsLookAndFeel, JButton, Mnemonic] author: aterai pubdate: 2016-09-26T01:36:44+09:00 description: WindowsLookAndFeelを使用する環境でJMenuItemやJButtonなどに設定したMnemonicの下線を常に表示するよう設定します。 image: https://drive.google.com/uc?id=1m64MGIgQ2o25gL3ZpVz_ZyEXU_TG2oZnAw --- * 概要 [#summary] `WindowsLookAndFeel`を使用する環境で`JMenuItem`や`JButton`などに設定した`Mnemonic`の下線を常に表示するよう設定します。 #download(https://drive.google.com/uc?id=1m64MGIgQ2o25gL3ZpVz_ZyEXU_TG2oZnAw) * サンプルコード [#sourcecode] #code(link){{ showMnemonicsCheck.setSelected(UIManager.getBoolean("Button.showMnemonics")); showMnemonicsCheck.setMnemonic('B'); showMnemonicsCheck.addActionListener(e -> { UIManager.put("Button.showMnemonics", ((JCheckBox) e.getSource()).isSelected()); if (UIManager.getLookAndFeel() instanceof WindowsLookAndFeel) { WindowsLookAndFeel.setMnemonicHidden(true); SwingUtilities.getRoot(showMnemonicsCheck).repaint(); } }); }} * 解説 [#explanation] 上記のサンプルでは、`JMenuItem`に設定した`Mnemonic`の下線表示の切り替えをテストしています。 - `UIManager.put("Button.showMnemonics", false)` -- `WindowsLookAndFeel`の場合、`Mnemonic`の下線が非表示になる --- その他の`LookAndFeel`ではこの設定は無効 --- この場合でもKBD{Alt}キーを押すと`WindowsLookAndFeel.setMnemonicHidden(false)`となって下線は表示される -- デフォルト --- 例えば`Windows 10`の場合「コントロール パネル\コンピューターの簡単操作\コンピューターの簡単操作センター\キーボードを使いやすくします」の「ショートカット キーとアクセス キーに下線を表示します」のチェックに対応 -- `WindowsLookAndFeel`でチェックボックスで切り替えを行う際、`WindowsLookAndFeel.setMnemonicHidden(true)`で一旦下線を非表示にしてから`JFrame`全体を再描画している --- [https://bugs.openjdk.java.net/browse/JDK-6921687 JDK-6921687 Mnemonic disappears after repeated attempts to open menu items using mnemonics - Java Bug System] --- [https://bugs.openjdk.org/browse/JDK-6921687 JDK-6921687 Mnemonic disappears after repeated attempts to open menu items using mnemonics - Java Bug System] - `UIManager.put("Button.showMnemonics", true)` -- `WindowsLookAndFeel`の場合でも`Mnemonic`の下線が常に表示状態になる * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/technotes/guides/swing/1.4/keyboard_nav_hiding.html Windows Look & Feelのキーボード・ナビゲーションの非表示] * コメント [#comment] #comment #comment