更改JButton的背景颜色始终显示为灰色 [英] Changing the background color of JButton always shows as grey
问题描述
我正在制作一个GUI界面,并尝试使用以下代码更改窗口的背景和前景色:
I am making a GUI interface and I am trying to change the background and foreground color of my windows with the following code:
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test
{
public static void changeColor(String typeOfColor, Component component, Color color)
{
if (typeOfColor.equals("Background"))
{
component.setBackground(color);
}
else if (typeOfColor.equals("Foreground"))
{
component.setForeground(color);
}
if (component instanceof Container)
{
for (Component child : ((Container) component).getComponents())
{
changeColor(typeOfColor, child, color);
}
}
}
public static void main(String[] args)
{
JPanel panel = new JPanel();
JButton cancelButton = new JButton("Cancel");
panel.add(cancelButton);
changeColor("Background", panel, new Color(0, 255, 0));
JFrame frame = new JFrame("Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(panel);
frame.setVisible(true);
frame.pack();
}
}
但是,无论我选择什么颜色,按钮仍然将背景颜色显示为灰色.如何正确更改背景颜色?我环顾四周,大多数答案都提到了setBackground方法,但这对我不起作用.
However, no matter what is the color I choose, the buttons still display the background color as grey. How do I change the background color properly? I have looked around and most answers mention the setBackground method, but that does not work for me.
提前谢谢!
推荐答案
尼古拉斯·史密斯(Nicholas Smith)解决了我的问题.
Nicholas Smith solved my issue.
他在评论中提到:它可能是您特定LookAndFeel中JButton的背景颜色,不能被覆盖."
In the comments, he mentioned "It could be the background color for a JButton in your specific LookAndFeel can't be overridden."
我在代码中设置外观,一旦删除了代码的那部分,按钮的背景颜色就成功更改了.
I was setting the look and feel in my code and once I removed that part of the code, my buttons' background color was changed successfully.
谢谢你!
这篇关于更改JButton的背景颜色始终显示为灰色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!