如何设置JButton的颜色

5

如何设置JButton的颜色?

我尝试了以下方法:

button.setBackground(Color.red);

但是没有成功。这只改变了按钮边框的颜色。我接着尝试重写paintComponents函数。
public void paintComponent(Graphics g) {
   g.setColor(Color.GREEN);
   g.fillRect(0, 0, getSize().width, getSize().height);
}

但是现在我看不到JButton上的文本。
2个回答

6

使用图像图标而不是文本来为按钮着色是最好的方法。 您可以使用Gimp设计它们。

确保背景是透明的

button.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/myimage.png")));

这是一个禁用的button.setDisabledIcon(...按钮: enter image description here 这是一个启用的未按下的按钮: enter image description here 这是一个按下的启用按钮: enter image description here Swing会在按下后改变背景颜色,只需要两张图片即可。

是的,我也试过这个,但当我将图标应用到整个按钮时,当按下按钮时没有任何图形动作(颜色的某些变化)。 - hudi
这里的小技巧是,您应该使图像的背景透明。 - Costis Aivalis
1
+1 但我不知道 Gimp 与此有何关系。您可以在大约5行代码中在运行时生成纯色图像。 - Andrew Thompson
我通常使用Gimp来制作我的png文件。:-) - Costis Aivalis

3

背景颜色的影响取决于您的外观和感觉。请参见http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/index.html

您应该选择一个使用背景颜色的外观和感觉,以满足您的需求。我不知道您目前正在使用什么。如果您使用默认的LAF设置,则更改颜色并删除边框就足够了:

button.setBackground(color);
button.setBorder(null);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接