我在MouseListener.的Nimbus L&F设置中有一个JButton当鼠标进入时,我能够更改文本颜色,但不能将颜色改回,也不能在鼠标退出时更改其他颜色的。从打印出来我确信mouseExit是被调用的。
有人能帮我找出原因吗?
我认为在调用mouseEntered()之后,btn_f不再是Nimbus &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);
}
}发布于 2015-07-10 21:26:58
一个简单的btn_f.setForeground( theColor );在enter、mouseEntered()和mouseExited()中都能工作。
https://stackoverflow.com/questions/31349328
复制相似问题