Swing/InternalFrameTitleAlignment のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/InternalFrameTitleAlignment へ行く。
- 1 (2018-01-08 (月) 21:17:52)
- 2 (2018-02-15 (木) 14:23:42)
- 3 (2020-01-02 (木) 19:29:03)
- 4 (2021-07-04 (日) 12:52:29)
- 5 (2024-02-28 (水) 21:57:19)
- category: swing folder: InternalFrameTitleAlignment title: JInternalFrameのタイトルを左寄せに変更する tags: [JInternalFrame, NimbusLookAndFeel, LookAndFeel] author: aterai pubdate: 2018-01-08T21:07:11+09:00 description: NimbusLookAndFeelを使用するJInternalFrameのタイトルを左寄せに変更します。 image: https://drive.google.com/uc?id=1pc7-91VPZY42IsKoQuMfcpg0I90siJvvlQ
概要
NimbusLookAndFeel
を使用するJInternalFrame
のタイトルを左寄せに変更します。
Screenshot
Advertisement
サンプルコード
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
UIDefaults def = UIManager.getLookAndFeelDefaults();
def.put("InternalFrame:InternalFrameTitlePane.titleAlignment", "LEADING");
View in GitHub: Java, Kotlin解説
上記のサンプルでは、UIDefaults
のInternalFrame:InternalFrameTitlePane.titleAlignment
キーの値を変更することでNimbusLookAndFeel
を使用するJInternalFrame
のタイトルを変更しています。
TRAILING
で右寄せになるSynthLookAndFeel
系でのみ有効JInternalFrame#setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)
を設定すると、各ボタンと合わせて、タイトルの字揃えも逆転するNorthPane#setComponentOrientation(...)
は効果がない
- 個別の
JInternalFrame
でタイトルの字揃えを変更する場合は、以下のようにJInternalFrame#getUI()
で取得したBasicInternalFrameUI
からgetNorthPane()
でタイトルバーを取得し、putClientProperty("Nimbus.Overrides", ...)
で上書きする JInternalFrame#putClientProperty(...)
は効果がない- この方法でもすべての
JInternalFrame
のタイトル字揃えが変更されてしまう場合がある?JInternalFrame frame = new JInternalFrame("title", true, true, true, true); BasicInternalFrameUI ui = (BasicInternalFrameUI) frame.getUI(); JComponent titleBar = (JComponent) ui.getNorthPane(); UIDefaults d = new UIDefaults(); String titleAlignment = idx == 0 ? "CENTER" : "LEADING"; d.put("InternalFrame:InternalFrameTitlePane.titleAlignment", titleAlignment); titleBar.putClientProperty("Nimbus.Overrides", d);