Swing/OptionPaneMinimumSize のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/OptionPaneMinimumSize へ行く。
- 1 (2023-01-09 (月) 11:01:50)
- category: swing folder: OptionPaneMinimumSize title: JOptionPaneの最小サイズを設定する tags: [JOptionPane, UIManager] author: aterai pubdate: 2023-01-09T10:56:45+09:00 description: JOptionPaneの最小サイズをUIManagerを使用して変更します。 image: https://drive.google.com/uc?id=1VDOBP5adm7znzjkXMCd2ew2SKGJGgQW_
概要
JOptionPaneの最小サイズをUIManagerを使用して変更します。
Screenshot
Advertisement
サンプルコード
String key = "OptionPane.minimumSize";
JButton button3 = new JButton(key);
button3.addActionListener(e -> {
// UIManager.put(key, new DimensionUIResource(120, 120));
UIManager.put(key, new Dimension(120, 120));
Component p = ((JComponent) e.getSource()).getRootPane();
JOptionPane.showMessageDialog(p, "message3", "title3(120*120)", JOptionPane.PLAIN_MESSAGE);
UIManager.put(key, UIManager.getLookAndFeelDefaults().getDimension(key));
});
View in GitHub: Java, Kotlin解説
Default
JOptionPane
のデフォルト最小サイズはBasicOptionPaneUI
とSynthOptionPaneUI
で個別に設定されているが値は同じで262*90
HierarchyListener + setPreferredSize
HierarchyListener
を使用してJOptionPane
に追加するメッセージ表示用コンポーネントが表示状態になったとき、JOptionPane#setPreferredSize(...)
メソッドで推奨サイズを設定
OptionPane.minimumSize
UIManager.put("OptionPane.minimumSize", Dimension)
でJOptionPane
の最小サイズを設定OptionPane.minimumSize
がnull
以外の場合、BasicOptionPaneUI#getMinimumOptionPaneSize()
メソッドはこの値を返す(null
の場合はnew Dimension(262, 90)
)
HierarchyListener + setPreferredSize
UIManager.put("OptionPane.minimumSize", Dimension)
でJOptionPane
の最小サイズを設定しても、メッセージ表示用コンポーネントなどの最小サイズがそれより大きくなる場合はそちらが優先される
参考リンク
- BasicOptionPaneUI#getMinimumOptionPaneSize() (Java Platform SE 8)
- JOptionPaneに配置するJTextAreaの最大幅を指定してサイズ調整を行う