Swing/SameSizeButtons のバックアップ(No.8)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/SameSizeButtons へ行く。
- 1 (2015-05-11 (月) 00:45:20)
- 2 (2015-05-11 (月) 17:33:42)
- 3 (2015-06-04 (木) 18:09:46)
- 4 (2017-03-15 (水) 18:24:05)
- 5 (2017-04-04 (火) 14:13:45)
- 6 (2017-04-07 (金) 13:51:51)
- 7 (2017-12-11 (月) 18:12:40)
- 8 (2019-08-23 (金) 17:01:39)
- 9 (2020-04-29 (水) 19:48:41)
- 10 (2021-10-29 (金) 04:08:32)
- 11 (2025-01-03 (金) 08:57:02)
- 12 (2025-01-03 (金) 09:01:23)
- 13 (2025-01-03 (金) 09:02:38)
- 14 (2025-01-03 (金) 09:03:21)
- 15 (2025-01-03 (金) 09:04:02)
- category: swing
folder: SameSizeButtons
title: JOptionPaneで使用するボタンのサイズを揃える
tags: [JOptionPane, JButton, UIManager, NimbusLookAndFeel]
author: aterai
pubdate: 2015-05-11T00:39:58+09:00
description: NimbusLookAndFeelでJOptionPaneを使用した場合、そのJButtonのサイズを揃えるかどうかを設定します。
image:
概要
NimbusLookAndFeel
でJOptionPane
を使用した場合、そのJButton
のサイズを揃えるかどうかを設定します。java - JOptionPane button size (Nimbus LAF) - Stack Overflowの回答を参考にしています。
Screenshot

Advertisement
サンプルコード
UIManager.getLookAndFeelDefaults().put("OptionPane.sameSizeButtons", true);
View in GitHub: Java, Kotlin解説
default
- デフォルトの
NimbusLookAndFeel
でJOptionPane
が使用するJButton
のサイズは、各ボタンのテキストの長さに依存する - 注:
MetalLookAndFeel
などは、常にこれらのボタンは同じサイズ
- デフォルトの
SameSizeButtons
UIManager.getLookAndFeelDefaults().put("OptionPane.sameSizeButtons", true);
で、最も長いボタンテキストから作成されるJButton
のサイズに揃えられる- 注: このサンプルでは、実行中にこれらを切り替えるテストを行うために、
UIManager.getLookAndFeelDefaults()
で取得したUIDefaults
ではなく、以下のように新規作成したUIDefaults
にOptionPane.sameSizeButtons
を設定してJOptionPane
に上書きし、SwingUtilities.updateComponentTreeUI(JOptionPane)
でUI
を更新している(OptionPane.buttonAreaBorder
でテスト)UIDefaults d = new UIDefaults(); d.put("OptionPane.sameSizeButtons", true); op.putClientProperty("Nimbus.Overrides", d); op.putClientProperty("Nimbus.Overrides.InheritDefaults", true); SwingUtilities.updateComponentTreeUI(op); op.createDialog(getRootPane(), "title").setVisible(true);
参考リンク
- java - JOptionPane button size (Nimbus LAF) - Stack Overflow
- SynthLookAndFeelでのコンポーネント固有のプロパティ
- Nimbusの外観をUIDefaultsで変更する
- JButtonなどの高さを変更せずに幅を指定