Swing/InternalFrameTitlePaneHeight の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/InternalFrameTitlePaneHeight へ行く。
- Swing/InternalFrameTitlePaneHeight の差分を削除
--- 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