JInternalFrameのTitleButtonでJToolTipを表示するかを切り替える
Total: 612
, Today: 4
, Yesterday: 2
Posted by aterai at
Last-modified:
概要
JInternalFrame
のタイトルバーに配置された閉じる、最大化、最小化JButton
でJToolTip
の表示・非表示を切り替えます。
Screenshot
Advertisement
サンプルコード
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);
});
View in GitHub: Java, Kotlin解説
InternalFrame.titleButtonToolTipsOn: true
WindowsLookAndFeel
のデフォルト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
は非表示になる