gpt4 book ai didi

java - 如何来回更改 Java Swing Nimbus 按钮文本前景色?

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:37 27 4
gpt4 key购买 nike

我的 Nimbus L&F 设置中有一个 JButtonMouseListener。当鼠标进入时,我能够更改文本颜色,但当鼠标退出时,无法将颜色更改回或另一种颜色。从打印输出中我确信 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);
}
}

最佳答案

一个简单的 btn_f.setForeground( theColor ); 在 Enter 和 mouseEntered()mouseExited() 中都有效。

关于java - 如何来回更改 Java Swing Nimbus 按钮文本前景色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31349328/

27 4 0
文章推荐: c++ - 为什么这个范围会爆炸
文章推荐: javascript - 无论如何要将 <title> 链接到
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com