【发布时间】:2015-07-11 05:26:58
【问题描述】:
我的 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);
}
}
【问题讨论】: