概要
JTabbedPane
のタブにMnemonic
を追加します。
サンプルコード
int tabIdx = 3;
tab.addTab("Button", new JButton("button"));
tab.setMnemonicAt(tabIdx, KeyEvent.VK_B);
tab.setDisplayedMnemonicIndexAt(tabIdx, 0);
view all解説
上記のサンプルコードは、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)