DisabledなJMenuItemのハイライトをテスト
Total: 3914, Today: 2, Yesterday: 0
Posted by aterai at
Last-modified:
Summary
無効化状態のJMenuItemがハイライト可能かどうかをLookAndFeelごとにテストします。
Screenshot

Advertisement
Source Code Examples
// 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, KotlinDescription
WindowsLookAndFeelUIManager.getLookAndFeelDefaults().getBoolean("MenuItem.disabledAreNavigable")の初期値はBoolean.TRUEUIManager.put("MenuItem.disabledAreNavigable", ...)で無効化(Disabled)したJMenuItemをハイライトするかどうかを切り替え可能
MetalLookAndFeelUIManager.getLookAndFeelDefaults().getBoolean("MenuItem.disabledAreNavigable")の初期値はBoolean.FALSEUIManager.put("MenuItem.disabledAreNavigable", Boolean.TRUE)を設定すれば無効化(Disabled)したJMenuItemでもハイライトが可能
NimbusLookAndFeelUIManager.getLookAndFeelDefaults().getBoolean("MenuItem.disabledAreNavigable")の初期値はBoolean.FALSEUIManager.put("MenuItem.disabledAreNavigable", Boolean.TRUE)を設定しても無効化(Disabled)したJMenuItemのハイライトは不可
Reference
- 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