Swing/NimbusTabbedPaneIcon のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/NimbusTabbedPaneIcon へ行く。
- 1 (2022-02-28 (月) 01:29:58)
- 2 (2023-06-22 (木) 04:33:58)
- 3 (2024-05-12 (日) 21:32:17)
- category: swing folder: NimbusTabbedPaneIcon title: NimbusLookAndFeelでJTabbedPaneのタブテキストとアイコンの水平方向の配置方法を変更する tags: [JTabbedPane, Icon, NimbusLookAndFeel] author: aterai pubdate: 2022-02-28T01:26:03+09:00 description: NimbusLookAndFeelを設定したJTabbedPaneのタブテキストとアイコンの水平方向の配置方法やその間隔を変更します。 image: https://drive.google.com/uc?id=18bc9dKdXmMqpLIy13KYlR9rv1CqvtGSq
概要
NimbusLookAndFeel
を設定したJTabbedPane
のタブテキストとアイコンの水平方向の配置方法やその間隔を変更します。
Screenshot
Advertisement
サンプルコード
// UIManager.put("TabbedPane.textIconGap", 4);
JTabbedPane tabbedPane0 = new JTabbedPane() {
@Override public void updateUI() {
super.updateUI();
System.out.println(UIManager.getInt("TabbedPane.textIconGap"));
// UIDefaults d = new UIDefaults();
// d.put("TabbedPane.textIconGap", 4);
// putClientProperty("Nimbus.Overrides", d);
// putClientProperty("Nimbus.Overrides.InheritDefaults", true);
}
};
add(makeTitledPanel("Default addTab(title, icon, c)", initTabbedPane(tabbedPane0)));
JTabbedPane tabbedPane1 = new JTabbedPane() {
@Override public void insertTab(
String title, Icon icon, c component, String tip, int index) {
super.insertTab(title, icon, c, tip, index);
JLabel label = new JLabel(title, icon, SwingConstants.LEADING);
setTabComponentAt(getTabCount() - 1, label);
}
};
add(makeTitledPanel("TabComponent + JLabel + LEADING", initTabbedPane(tabbedPane1)));
View in GitHub: Java, Kotlin解説
Default addTab(title, icon, c)
JTabbedPane#addTab(title, icon, c)
メソッドでタブテキストとアイコンを追加した場合、NimbusLookAndFeel
でのデフォルト水平方向配置はテキスト、アイコンの順番になるMetalLookAndFeel
やWindowsLookAndFeel
のデフォルトはアイコン、テキストの順番になるJTabbedPane#setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
を設定すればアイコン、テキストの順番になるが、一行タブエリア内でのタブ配置が右寄せになるNimbusLookAndFeel
でのタブテキストとアイコンの間隔は未設定でデフォルトは0
になっているMetalLookAndFeel
やWindowsLookAndFeel
のデフォルトは4
NimbusLookAndFeel
でもJMenuItem
などのテキストとアイコンの間隔のデフォルトは4
NimbusLookAndFeel
でもタブテキストとアイコンの間隔はUIManager.put("TabbedPane.textIconGap", 4)
やUIDefaults
で変更可能
TabComponent + JLabel + LEADING
new JLabel(title, icon, SwingConstants.LEADING)
などでテキストとアイコンをもつJLabel
を作成し、JTabbedPane#setTabComponentAt(...)
で設定することでLookAndFeel
に依存せずにタブテキストとアイコンの水平方向配置方法などを使用可能