Swing/ComponentSizeVariant のバックアップ(No.13)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/ComponentSizeVariant へ行く。
- 1 (2014-07-28 (月) 00:18:57)
- 2 (2014-11-07 (金) 03:29:38)
- 3 (2015-12-02 (水) 00:50:08)
- 4 (2017-03-28 (火) 15:09:38)
- 5 (2017-04-04 (火) 14:17:08)
- 6 (2018-02-08 (木) 16:18:37)
- 7 (2018-11-09 (金) 17:21:52)
- 8 (2020-11-05 (木) 11:36:44)
- 9 (2022-10-21 (金) 11:59:04)
- 10 (2025-01-03 (金) 08:57:02)
- 11 (2025-01-03 (金) 09:01:23)
- 12 (2025-01-03 (金) 09:02:38)
- 13 (2025-01-03 (金) 09:03:21)
- 14 (2025-01-03 (金) 09:04:02)
- category: swing
folder: ComponentSizeVariant
title: NimbusLookAndFeelでJComponentのサイズを変更する
tags: [NimbusLookAndFeel, JComponent, Font]
author: aterai
pubdate: 2014-07-28T00:18:57+09:00
description: NimbusLookAndFeelを使用している場合、コンポーネントの表示サイズをクライアントプロパティ設定で変更可能です。
image:
Summary
NimbusLookAndFeel
を使用している場合、コンポーネントの表示サイズをクライアントプロパティ設定で変更可能です。
Screenshot

Advertisement
Source Code Examples
JMenu menu = new JMenu("Resizing a Component");
ButtonGroup bg = new ButtonGroup();
Stream.of("regular", "mini", "small", "large")
.forEach(cmd -> menu.add(createSizeVariantItem(cmd, bg)));
// ...
booleanRenderer.putClientProperty("JComponent.sizeVariant", "mini");
View in GitHub: Java, KotlinExplanation
NimbusLookAndFeel
を使用している場合JComponent#putClientProperty("JComponent.sizeVariant", "mini")
のようにクライアントプロパティを設定することでコンポーネントの表示サイズが変更可能- デフォルトは
regular
、その他は小さい順にmini
、small
、large
が設定可能 JComponent#updateUI()
を実行しないと更新されない- このサンプルでは
SwingUtilities.updateComponentTreeUI(window)
で実行
- このサンプルでは
- コンポーネントにフォントがユーザ指定されている場合は文字サイズは更新されない
- このサンプルでは
updateUI()
の前にフォントをc.setFont(new FontUIResource(c.getFont()))
でUIResource
化することで回避
- このサンプルでは
JTable
のBooleanRenderer
が二回目以降変更されない- 初回の
JCheckBox booleanRenderer = (JCheckBox) table.getDefaultRenderer(Boolean.class); booleanRenderer.putClientProperty("JComponent.sizeVariant", "mini");
は、正常に動作しているように見える
- 初回の
- デフォルトは