Swing/InternalFrameTitleButtonToolTipsOn の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/InternalFrameTitleButtonToolTipsOn へ行く。
- Swing/InternalFrameTitleButtonToolTipsOn の差分を削除
--- category: swing folder: InternalFrameTitleButtonToolTipsOn title: JInternalFrameのTitleButtonでJToolTipを表示するかを切り替える tags: [UIManager, JInternalFrame, JButton, JToolTip, WindowsLookAndFeel] author: aterai pubdate: 2023-02-13T01:33:32+09:00 description: JInternalFrameのタイトルバーに配置された閉じる、最大化、最小化JButtonでJToolTipの表示・非表示を切り替えます。 image: https://drive.google.com/uc?id=1SLM6oYpp38PKBED36pr5cj4VOAeXEq4I --- * 概要 [#summary] `JInternalFrame`のタイトルバーに配置された閉じる、最大化、最小化`JButton`で`JToolTip`の表示・非表示を切り替えます。 #download(https://drive.google.com/uc?id=1SLM6oYpp38PKBED36pr5cj4VOAeXEq4I) * サンプルコード [#sourcecode] #code(link){{ String key = "InternalFrame.titleButtonToolTipsOn"; boolean def = UIManager.getLookAndFeelDefaults().getBoolean(key); JCheckBox check = new JCheckBox(key, def) { @Override public void updateUI() { super.updateUI(); setOpaque(false); boolean b = UIManager.getLookAndFeelDefaults().getBoolean(key); setSelected(b); UIManager.put(key, b); SwingUtilities.updateComponentTreeUI(desktop); } }; check.addActionListener(e -> { JCheckBox checkBox = (JCheckBox) e.getSource(); UIManager.put(key, checkBox.isSelected()); SwingUtilities.updateComponentTreeUI(desktop); }); }} * 解説 [#explanation] - `InternalFrame.titleButtonToolTipsOn: true` -- `WindowsLookAndFeel`のデフォルト -- `WindowsLookAndFeel.java`で`Object hotTrackingOn = new WindowsDesktopProperty("win.item.hotTrackingOn", true);`と`Windows`デスクトップのプロパティ変更と連動してメニューバーのロールオーバーとも連動している? -- `WindowsLookAndFeel.java`で`Object hotTrackingOn = new WindowsDesktopProperty("win.item.hotTrackingOn", true);`と設定されており、`Windows`デスクトップのプロパティ変更と連動している? -- `hotTrackingOn`はメニューバーのロールオーバーにも使用されている --- `"InternalFrame.titleButtonToolTipsOn", hotTrackingOn,` --- `"MenuBar.rolloverEnabled", hotTrackingOn,` - `InternalFrame.titleButtonToolTipsOn: false` -- `WindowsLookAndFeel`以外では`InternalFrame.titleButtonToolTipsOn`は設定されておらず`null`になるのでデフォルトは`false`となる -- `MetalLookAndFeel`や`NimbusLookAndFeel`ではこの設定は無視されて常に`JInternalFrame`のタイトルバーに配置された閉じる、最大化、最小化`JButton`で`JToolTip`は表示される -- `MotifLookAndFeel`ではこの設定は無視されて常に`JInternalFrame`のタイトルバーに配置された最大化、最小化`JButton`で`JToolTip`は非表示になる * 参考リンク [#reference] - [[DesktopPropertyの変更を監視する>Swing/DesktopProperty]] - [https://docs.oracle.com/javase/jp/8/docs/technotes/guides/swing/1.4/w2k_props.html Windowsデスクトップ関連のプロパティのサポート] * コメント [#comment] #comment #comment