---
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
---
* Summary [#summary]
`JInternalFrame`の上部に配置されるタイトルバーの高さを変更します
#download(https://drive.google.com/uc?id=1rKBPX_SKlksz0KpPKuL_DdfwkBonnm7Q)
* Source Code Examples [#sourcecode]
#code(link){{
// 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);
}
};
}}
* Description [#explanation]
* Description [#description]
- `WindowsLookAndFeel`でのみ`UIManager.put("InternalFrame.titlePaneHeight", 22)`で`JInternalFrame`の`TitlePane`の高さを変更可能
-- 左端の`SystemMenu`アイコンはタイトルバーの高さに応じて拡大縮小するが、閉じるアイコンなどのサイズは自動的に変化しない
-- `UIManager.put("InternalFrame.titleButtonHeight", ...)`などで更新する必要がある
- `JComponent titleBar = ( (BasicInternalFrameUI) frame.getUI() ).getNorthPane()`で個別の`TitlePane`を取得し`titleBar.setPreferredSize(...)`でサイズ変更しても効果がない
* Reference [#reference]
- [[JInternalFrameのTitleButtonでJToolTipを表示するかを切り替える>Swing/InternalFrameTitleButtonToolTipsOn]]
* Comment [#comment]
#comment
#comment