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

Sal*_*lar 17 java swing jbutton

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

 for(int i=1;i<=9;i++)
 {
     p3.add(new JButton(""+i));
 }
Run Code Online (Sandbox Code Playgroud)

Pab*_*ruz 22

查看JButton文档.特别注意setBackgroundsetForeground继承的方法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);
}
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于Mac上的Java 8.背景颜色是按钮背后的颜色.然后在黑色背景上绘制按钮,按钮为灰色,带灰色文本.(你无法阅读文字).实际上,情况更糟......除非首先调用`setOpaque(true)`,否则根本不绘制黑色背景. (12认同)
  • 使用 setBorderPainted(false) 可以解决上述问题。 (3认同)
  • 不适用于Java 8.正如@Jason所说.背景颜色是按钮的颜色. (2认同)

Ali*_*adi 12

简单:

btn.setBackground(Color.red);

要使用RGB值:

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

  • 我喜欢使用btn.setBackground(New Color(int,int,int)); 对于RGB值 (3认同)