Swing/TabMnemonic のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TabMnemonic へ行く。
- 1 (2013-01-17 (木) 15:08:35)
- 2 (2013-05-19 (日) 16:38:44)
- 3 (2013-07-26 (金) 01:33:11)
- 4 (2015-10-20 (火) 17:22:08)
- 5 (2017-04-13 (木) 12:16:00)
- 6 (2018-01-23 (火) 13:22:01)
- 7 (2018-01-25 (木) 18:16:54)
- 8 (2018-06-21 (木) 17:41:48)
- 9 (2019-02-12 (火) 15:29:26)
- 10 (2020-12-03 (木) 10:16:22)
- 11 (2022-08-26 (金) 12:32:48)
- 12 (2022-08-27 (土) 23:46:36)
- title: JTabbedPaneのタブにMnemonicを追加 tags: [JTabbedPane, Mnemonic, JLabel] author: aterai pubdate: 2008-09-01T13:22:20+09:00 description: JTabbedPaneのタブにMnemonicを追加します。
概要
JTabbedPane
のタブにMnemonic
を追加します。
Screenshot
Advertisement
サンプルコード
tab.addTab("Button", new JButton("button"));
tab.setMnemonicAt(3, KeyEvent.VK_B);
tab.setDisplayedMnemonicIndexAt(3, 0);
View in GitHub: Java, Kotlin解説
上記のサンプルコードは、3
番目のタブにAlt+Bでフォーカスが移動するように、JTabbedPane#setMnemonicAt
メソッドを使用しています。
また、タブタイトルの先頭文字(B
)にアンダーラインが入るようにJTabbedPane#setDisplayedMnemonicIndexAt
メソッドで設定しています。
JDK 6
以降でタブにJComponent
を追加する場合、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);