下面是在特定pannel3上以gridlayout形式创建9个按钮的代码。我想要的是使每个按钮的背景为黑色,上面有灰色文字。 有人可以帮忙吗?
for(int i=1;i<=9;i++)
{
p3.add(new JButton(""+i));
}
答案 0 :(得分:21)
查看JButton文档。请特别注意从setBackground
继承的setForeground
和JComponent
方法。
类似的东西:
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方法以获得更好的结果:
答案 5 :(得分:1)
使用setBackground方法设置背景,使用setForeground更改文字颜色。但请注意,将灰色文本放在黑色背景上可能会使您的文本难以阅读。
答案 6 :(得分:0)
似乎setBackground()方法在某些平台上运行不正常(我使用的是Windows 7)。我发现this answer对this question很有帮助。但是,我并没有完全用它来解决我的问题。相反,我认为为按钮旁边的面板着色会更容易,也更美观。