• category: swing folder: ComponentSizeVariant title: NimbusLookAndFeelでJComponentのサイズを変更する tags: [NimbusLookAndFeel, JComponent, Font] author: aterai pubdate: 2014-07-28T00:18:57+09:00 description: NimbusLookAndFeelを使用している場合、クライアントプロパティを設定することでJComponentの表示サイズを変更することが出来ます。 image: https://lh6.googleusercontent.com/-Uru9Oco4olg/U9T5RHzJ_5I/AAAAAAAACKY/7N7a3Ya3sYw/s800/ComponentSizeVariant.png

概要

NimbusLookAndFeelを使用している場合、クライアントプロパティを設定することでJComponentの表示サイズを変更することが出来ます。

サンプルコード

booleanRenderer.putClientProperty("JComponent.sizeVariant", "mini");
View in GitHub: Java, Kotlin

解説

  • NimbusLookAndFeelを使用している場合、JComponent#putClientProperty("JComponent.sizeVariant", "mini");のようにクライアントプロパティを設定することでコンポーネントの表示サイズが変更可能
    • デフォルトはregular、その他は小さい順にmini, small, largeが設定可能
    • JComponent#updateUI()を実行しないと、更新されない
      • このサンプルでは、SwingUtilities.updateComponentTreeUI(window);で実行
    • フォントがユーザー指定されている場合は、文字サイズは更新されない?
      • このサンプルでは、updateUI()の前に、フォントをjc.setFont(new FontUIResource(jc.getFont()));UIResource化することで回避している
    • JTableBooleanRendererが二回目以降変更されない
      • 初回のJCheckBox booleanRenderer = (JCheckBox) table.getDefaultRenderer(Boolean.class); booleanRenderer.putClientProperty("JComponent.sizeVariant", "mini");は、正常に動作しているように見える

参考リンク

コメント