如何在Java GUI中设置按钮的背景颜色?

时间:2010-11-13 14:17:58

标签: java swing jbutton

下面是在特定pannel3上以gridlayout形式创建9个按钮的代码。我想要的是使每个按钮的背景为黑色,上面有灰色文字。 有人可以帮忙吗?

 for(int i=1;i<=9;i++)
 {
     p3.add(new JButton(""+i));
 }

7 个答案:

答案 0 :(得分:21)

查看JButton文档。请特别注意从setBackground继承的setForegroundJComponent方法。

类似的东西:

for(int i=1;i<=9;i++)
{
    JButton btn = new JButton(String.valueOf(i));
    btn.setBackground(Color.BLACK);
    btn.setForeground(Color.GRAY);
    p3.add(btn);
}

答案 1 :(得分:12)

简单:

btn.setBackground(Color.red);

使用RGB值:

btn[i].setBackground(Color.RGBtoHSB(int, int, int, float[]));

答案 2 :(得分:3)

for(int i=1;i<=9;i++) {
    p3.add(new JButton(""+i) {{
        // initialize the JButton directly
        setBackground(Color.BLACK);
        setForeground(Color.GRAY);
    }});
}

答案 3 :(得分:2)

您可能需要或不必使用setOpaque方法来确保通过将true传递给方法来显示颜色。

答案 4 :(得分:2)

更改背景属性可能不够,因为组件不再像按钮一样。您可能需要像here中那样重新实现paint方法以获得更好的结果:

enter image description here

答案 5 :(得分:1)

使用setBackground方法设置背景,使用setForeground更改文字颜色。但请注意,将灰色文本放在黑色背景上可能会使您的文本难以阅读。

答案 6 :(得分:0)

似乎setBackground()方法在某些平台上运行不正常(我使用的是Windows 7)。我发现this answerthis question很有帮助。但是,我并没有完全用它来解决我的问题。相反,我认为为按钮旁边的面板着色会更容易,也更美观。