首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改Java Swing Nimbus按钮文本的前景色?

如何更改Java Swing Nimbus按钮文本的前景色?
EN

Stack Overflow用户
提问于 2015-07-10 20:00:51
回答 1查看 139关注 0票数 1

我在MouseListener.的Nimbus L&F设置中有一个JButton鼠标进入时,我能够更改文本颜色,但不能将颜色改回,也不能在鼠标退出时更改其他颜色的。从打印出来我确信mouseExit是被调用的。

有人能帮我找出原因吗?

我认为在调用mouseEntered()之后,btn_f不再是Nimbus &F了。我不知道我的猜测有无意义。

代码是这样的:

代码语言:javascript
复制
@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);
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2015-07-10 21:26:58

一个简单的btn_f.setForeground( theColor );在enter、mouseEntered()mouseExited()中都能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31349328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档