---
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]
`JInternalFrame`の上部に配置されるタイトルバーの高さを変更します

#download(https://drive.google.com/uc?id=1rKBPX_SKlksz0KpPKuL_DdfwkBonnm7Q)

* サンプルコード [#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);
  }
};
}}

* 解説 [#explanation]
- `WindowsLookAndFeel`でのみ`UIManager.put("InternalFrame.titlePaneHeight", 22)`で`JInternalFrame`の`TitlePane`の高さを変更可能
-- 左端の`SystemMenu`アイコンはタイトルバーの高さに応じて拡大縮小するが、閉じるアイコンなどのサイズは自動的に変化しない
-- `UIManager.put("InternalFrame.titleButtonHeight", ...)`などで更新する必要がある
- `JComponent titleBar = ((BasicInternalFrameUI) frame.getUI()).getNorthPane()`で個別の`TitlePane`を取得し`titleBar.setPreferredSize(...)`でサイズ変更しても効果がない
- `JComponent titleBar = ( (BasicInternalFrameUI) frame.getUI() ).getNorthPane()`で個別の`TitlePane`を取得し`titleBar.setPreferredSize(...)`でサイズ変更しても効果がない

* 参考リンク [#reference]
- [[JInternalFrameのTitleButtonでJToolTipを表示するかを切り替える>Swing/InternalFrameTitleButtonToolTipsOn]]

* コメント [#comment]
#comment
#comment