我的 Nimbus L& F 设置中有 JButton MouseListener 。我可以在鼠标输入时更改文字颜色,但在鼠标退出时无法更改颜色或另一种颜色。从打印出来,我确信调用了mouseExit。
任何人都可以帮我找出原因吗?
我想在调用mouseEntered()之后,btn_f不再是Nimbus L& F.我不知道我的猜测是否有意义。
代码喜欢这个:
@Override
public void mouseEntered(MouseEvent e) {
Object resource = e.getSource();
if(resource == btn_f)
{
System.out.println("@@@@@@@@@@@@@====btn_f is enterred");
UIDefaults defaults = new UIDefaults();
defaults.put("Button.textForeground", Color.BLUE);
btn_f.putClientProperty("Nimbus.Overrides", defaults);
//btn_f.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
//SwingUtilities.updateComponentTreeUI(btn_f);
}
}
@Override
public void mouseExited(MouseEvent e) {
Object resource = e.getSource();
if(resource == btn_f)
{
System.out.println("@@@@@@@@@@@@@====btn_f is exited");
UIDefaults defaults = new UIDefaults();
defaults.put("Button.textForeground", Color.RED);
btn_f.putClientProperty("Nimbus.Overrides", defaults);
//btn_f.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
//SwingUtilities.updateComponentTreeUI(btn_f);
}
}
答案 0 :(得分:0)
简单的btn_f.setForeground( theColor );
同时适用于输入和mouseEntered()
以及mouseExited()
。