Swing/InternalFrameTitleAlignment の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/InternalFrameTitleAlignment へ行く。
- Swing/InternalFrameTitleAlignment の差分を削除
--- 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 --- * Summary [#summary] `NimbusLookAndFeel`を使用する`JInternalFrame`のタイトルを左寄せに変更します。 #download(https://drive.google.com/uc?id=1pc7-91VPZY42IsKoQuMfcpg0I90siJvvlQ) * Source Code Examples [#sourcecode] #code(link){{ UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); UIDefaults def = UIManager.getLookAndFeelDefaults(); def.put("InternalFrame:InternalFrameTitlePane.titleAlignment", "LEADING"); }} * Explanation [#explanation] 上記のサンプルでは、`UIDefaults`の`InternalFrame:InternalFrameTitlePane.titleAlignment`キーの値を変更することで`NimbusLookAndFeel`を使用する`JInternalFrame`のタイトルを変更しています。 - デフォルトは`CENTER` - `TRAILING`で右寄せになる - `SynthLookAndFeel`系でのみ有効 - `JInternalFrame#setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT)`を設定すると、各ボタンと合わせてタイトルの字揃えも逆転する -- `NorthPane#setComponentOrientation(...)`は効果がない - 個別の`JInternalFrame`でタイトルの字揃えを変更する場合は、以下のように`JInternalFrame#getUI()`で取得した`BasicInternalFrameUI`から`getNorthPane()`でタイトルバーを取得し`putClientProperty("Nimbus.Overrides", ...)`で上書きする - `JInternalFrame#putClientProperty(...)`は効果がない - この方法でもすべての`JInternalFrame`のタイトル字揃えが変更されてしまう場合がある? #code{{ 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); }} * Reference [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/plaf/basic/BasicInternalFrameUI.html#getNorthPane-- BasicInternalFrameUI#getNorthPane() (Java Platform SE 8)] - [https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html Nimbus Defaults (The Java™ Tutorials > Creating a GUI With Swing > Modifying the Look and Feel)] * コメント [#comment] * Comment [#comment] #comment #comment