Swing/SameSizeButtons のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/SameSizeButtons へ行く。
- title: JOptionPaneで使用するボタンのサイズを揃える tags: [JOptionPane, JButton, UIManager, NimbusLookAndFeel] author: aterai pubdate: 2015-05-11T00:39:58+09:00 description: NimbusLookAndFeelでJOptionPaneを使用した場合、そのJButtonのサイズを揃えるかどうかを設定します。
概要
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().put(...)ではなく、以下のように
UIDefaultsを設定した後で、
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
- JOptionPane固有のプロパティ
- Nimbusの外観をUIDefaultsで変更する