在JGoodies中更改JButton的颜色WindowsLookAndFeel

时间:2015-09-15 22:05:03

标签: java swing look-and-feel jgoodies

如果我使用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()中的颜色,但这似乎没有任何效果。

1 个答案:

答案 0 :(得分:1)

尝试添加对setContentAreaFilled的调用:

button.setContentAreaFilled(false); //must be before setOpaque
button.setOpaque(true);

或者您可以覆盖JButton并绘制: Change JButton gradient color, but only for one button, not all