• category: swing folder: TabbedPaneUseBasicArrows title: NimbusLookAndFeelでJTabbedPaneのスクロール矢印ボタンを変更する tags: [NimbusLookAndFeel, JTabbedPane, ArrowButton, UIManager] author: aterai pubdate: 2022-09-05T03:34:14+09:00 description: NimbusLookAndFeelを適用したJTabbedPaneのスクロール矢印ボタンがBasicArrowButtonかSynthArrowButtonのどちらを使用するかを切り替えます。 image: https://drive.google.com/uc?id=1kL0AppkB4JwnMPqMOEcChAIp3L58NV3F

概要

NimbusLookAndFeelを適用したJTabbedPaneのスクロール矢印ボタンがBasicArrowButtonSynthArrowButtonのどちらを使用するかを切り替えます。

サンプルコード

JTabbedPane tabs = new JTabbedPane();
tabs.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
IntStream.range(0, 100).forEach(i -> tabs.addTab("title" + i, new JLabel("label" + i)));

String key = "TabbedPane.useBasicArrows";
// UIManager.put(key, Boolean.FALSE);
// UIManager.put("ArrowButton.size", 24);

JCheckBox check = new JCheckBox(key, UIManager.getBoolean(key));
check.addActionListener(e -> {
  boolean b = ((JCheckBox) e.getSource()).isSelected();
  UIManager.put(key, b);
  SwingUtilities.updateComponentTreeUI(tabs);
});
View in GitHub: Java, Kotlin

解説

  • TabbedPane.useBasicArrows: Boolean.TRUE
    • NimbusLookAndFeelのデフォルトでJTabbedPaneのスクロール矢印ボタンとしてBasicArrowButtonを使用する
  • TabbedPane.useBasicArrows: Boolean.FALSE
    • JTabbedPaneのスクロール矢印ボタンとしてSynthArrowButtonを継承したSynthScrollableTabButtonを使用する
    • UIManager.put("ArrowButton.size", 24)などでスクロール矢印ボタンのサイズ変更が可能

参考リンク

コメント