JTabbedPaneのタブにMnemonicを追加
Total: 5467
, Today: 2
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
JTabbedPane
のタブにMnemonic
を追加します。
サンプルコード
int tabIdx = 3;
tab.addTab("Button", new JButton("button"));
tab.setMnemonicAt(tabIdx, KeyEvent.VK_B);
tab.setDisplayedMnemonicIndexAt(tabIdx, 0);
View in GitHub: Java, Kotlin解説
上記のサンプルコードは、JTabbedPane
の3
番目のタブにJTabbedPane#setMnemonicAt(3, KeyEvent.VK_B)
メソッドを使用してMnemonic
を設定し、Alt+Bのキー入力でそのタブにフォーカス移動が可能になっています。
- タブタイトルの先頭文字(
B
)にアンダーラインが入るようにJTabbedPane#setDisplayedMnemonicIndexAt(...)
メソッドで設定 JDK 6
以降でタブタイトルにComponent
を使用している場合はJTabbedPane#setDisplayedMnemonicIndexAt(...)
メソッドを使用してもMnemonic
にアンダーラインは表示されない- 以下のように追加するコンポーネント側でアンダーラインを表示するための設定が必要
int index = tab.getTabCount(); String tabTitle = "label(0)"; JPanel p = new JPanel(new BorderLayout()); JLabel label = new JLabel(tabTitle); JButton button = new JButton("x"); p.add(label, BorderLayout.WEST); p.add(button, BorderLayout.EAST); tab.addTab(tabTitle, new JTree()); tab.setTabComponentAt(index, p); tab.setMnemonicAt(index, KeyEvent.VK_0); label.setDisplayedMnemonic(KeyEvent.VK_0);
- 以下のように追加するコンポーネント側でアンダーラインを表示するための設定が必要
参考リンク
- JTabbedPane#setMnemonicAt(...) (Java Platform SE 8)
- JTabbedPane#setDisplayedMnemonicIndexAt(...) (Java Platform SE 8)