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();
}
}
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.
Thanks in advance!