【问题标题】:how to change Java Swing Nimbus button text foreground color back and forth?如何来回更改Java Swing Nimbus按钮文本前景色?
【发布时间】:2015-07-11 05:26:58
【问题描述】:

我的 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);
        }
    }

【问题讨论】:

标签: java swing


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 2016-12-11
    • 2017-03-24
    • 2020-11-07
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多