Swing/InternalFrameTitlePaneHeight のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/InternalFrameTitlePaneHeight へ行く。
- 1 (2023-07-03 (月) 04:23:18)
- 2 (2023-09-30 (土) 19:40:11)
- category: swing folder: InternalFrameTitlePaneHeight title: JInternalFrameのTitlePaneの高さを変更 tags: [JInternalFrame, UIManager, WindowsLookAndFeel] author: aterai pubdate: 2023-07-03T04:21:21+09:00 description: JInternalFrameの上部に配置されるタイトルバーの高さを変更します image: https://drive.google.com/uc?id=1rKBPX_SKlksz0KpPKuL_DdfwkBonnm7Q
概要
JInternalFrameの上部に配置されるタイトルバーの高さを変更します
Screenshot
![Swing/InternalFrameTitlePaneHeight screenshot](https://ateraimemo.com/swing/internalframetitlepaneheight/screenshot.png)
Advertisement
サンプルコード
// InternalFrame.titleFont
// InternalFrame.titleButtonHeight
// InternalFrame.titleButtonWidth
// InternalFrame.titlePaneHeight
String key = "InternalFrame.titlePaneHeight";
int height = UIManager.getLookAndFeelDefaults().getInt(key);
SpinnerNumberModel model = new SpinnerNumberModel(height, 0, 50, 1);
model.addChangeListener(e -> {
int v = model.getNumber().intValue();
UIManager.put(key, v);
// UIManager.put("InternalFrame.titleButtonWidth", v);
// UIManager.put("InternalFrame.titleButtonHeight", v);
SwingUtilities.updateComponentTreeUI(desktop);
});
JSpinner spinner = new JSpinner(model) {
@Override public void updateUI() {
super.updateUI();
int h = UIManager.getLookAndFeelDefaults().getInt(key);
UIManager.put(key, h);
model.setValue(h);
SwingUtilities.updateComponentTreeUI(desktop);
}
};
View in GitHub: Java, Kotlin解説
WindowsLookAndFeel
でのみUIManager.put("InternalFrame.titlePaneHeight", 22)
でJInternalFrame
のTitlePane
の高さを変更可能- 左端の
SystemMenu
アイコンはタイトルバーの高さに応じて拡大縮小するが、閉じるアイコンなどのサイズは自動的に変化しない UIManager.put("InternalFrame.titleButtonHeight", ...)
などで更新する必要がある
- 左端の
JComponent titleBar = *1.getNorthPane()
で個別のTitlePane
を取得しtitleBar.setPreferredSize(...)
でサイズ変更しても効果がない