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

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

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

查看JButton文档。 请特别注意从JComponentinheritance的setBackgroundsetForeground方法。

就像是:

 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); } 

简单:

btn.setBackground(Color.red);

要使用RGB值:

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

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

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

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

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

在此处输入图像描述

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