在JGoodies WindowsLookAndFeel中更改JButton的颜色

5

如果我正在使用JGoodies的WindowsLookAndFeel,我该如何更改JButton的颜色?更改颜色后,按钮在被点击时仍应具有某些视觉指示;单击动画和颜色渐变不必与JGoodies中相同。

使用setBackground()setForeground()仅会更改按钮轮廓和按钮文本的颜色:

import com.jgoodies.looks.windows.WindowsLookAndFeel;
...

public class Test {
    public static void main(String[] args) throws UnsupportedLookAndFeelException {
        UIManager.setLookAndFeel(new WindowsLookAndFeel());

        JFrame frame = new JFrame();
        frame.setSize(50, 100);
        JButton button = new JButton("Button");
        button.setBackground(Color.GREEN);
        button.setForeground(Color.RED);
        button.setOpaque(true);
        frame.add(button);
        frame.setVisible(true);
    }
}

enter image description here

我想为整个按钮区域设置颜色,而不仅仅是轮廓线。(如果没有使用 WindowsLookAndFeel,则会出现这种情况。)

我还尝试在 com.jgoodies.looks.windows.WindowsBorders#getButtonBorder() 中更改颜色,但似乎没有任何效果。


你使用的是哪个Windows版本? - Vovka
我正在使用Windows 8。 - Chris K
1个回答

1

这非常接近我想要的(颜色显示正确),但是当使用WindowsLookAndFeel时,我没有任何点击的视觉指示(在使用默认外观时有)。 - Chris K
因为我在开始悬赏之前没有添加可视指示规定,所以悬赏已经被授予。 - Chris K
抱歉,现在没有时间进行研究和测试。以下是一些起点: 0)http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4880747; 1)创建自己的ButtonUI https://dev59.com/mm025IYBdhLWcg3w3J5H#5755124; 2)http://stackoverflow.com/questions/15043218/jbutton-background-images?rq=1; 3)使用图像作为背景 https://dev59.com/mm025IYBdhLWcg3w3J5H#11931487 4)WindowsXP-您的代码正常工作,没有问题。Win8-有问题。Win7未经测试。 - Vovka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接