Swing/TabMnemonic のバックアップ(No.9)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - 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)
- category: swing folder: TabMnemonic title: JTabbedPaneのタブにMnemonicを追加 tags: [JTabbedPane, Mnemonic, JLabel] author: aterai pubdate: 2008-09-01T13:22:20+09:00 description: JTabbedPaneのタブにMnemonicを追加します。 image:
概要
JTabbedPane
のタブにMnemonic
を追加します。
Screenshot
Advertisement
サンプルコード
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)