DisabledなJMenuItemのハイライトをテスト
Total: 3531
, Today: 1
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
無効化状態のJMenuItem
がハイライト可能かどうかをLookAndFeel
ごとにテストします。
Screenshot
Advertisement
サンプルコード
// UIManager.put("MenuItem.disabledAreNavigable", Boolean.TRUE);
String key = "MenuItem.disabledAreNavigable";
boolean b = UIManager.getBoolean(key);
System.out.println(key + ": " + b);
JCheckBox check = new JCheckBox(key, b) {
@Override public void updateUI() {
super.updateUI();
setSelected(UIManager.getLookAndFeelDefaults().getBoolean(key));
UIManager.put(key, isSelected());
}
};
check.addActionListener(e ->
UIManager.put(key, ((JCheckBox) e.getSource()).isSelected()));
View in GitHub: Java, Kotlin解説
WindowsLookAndFeel
UIManager.getLookAndFeelDefaults().getBoolean("MenuItem.disabledAreNavigable")
の初期値はBoolean.TRUE
UIManager.put("MenuItem.disabledAreNavigable", ...)
で無効化(Disabled
)したJMenuItem
をハイライトするかどうかを切り替え可能
MetalLookAndFeel
UIManager.getLookAndFeelDefaults().getBoolean("MenuItem.disabledAreNavigable")
の初期値はBoolean.FALSE
UIManager.put("MenuItem.disabledAreNavigable", Boolean.TRUE)
を設定すれば無効化(Disabled
)したJMenuItem
でもハイライトが可能
NimbusLookAndFeel
UIManager.getLookAndFeelDefaults().getBoolean("MenuItem.disabledAreNavigable")
の初期値はBoolean.FALSE
UIManager.put("MenuItem.disabledAreNavigable", Boolean.TRUE)
を設定しても無効化(Disabled
)したJMenuItem
のハイライトは不可
参考リンク
- JDK-4515765 Win L&F: Disabled menu items should show highlight - Java Bug System
- JDK-6325555 Only Partial Fix in for 4515765 in B53 Swing PIT - Java Bug System