1) JFrame
не может этого сделать, вы должны изменить Color
для панели содержимого, например,
JFrame.getContentPane().setBackground(myColor)
2) Вам нужно обернуть код, связанный с GUI (в методе main
)к invokeLater
Например:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI {
public GUI() {
JFrame frame = new JFrame();
frame.setTitle("Test Background");
frame.setLocation(200, 100);
frame.setSize(600, 400);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.getContentPane().setBackground(Color.BLUE);
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
GUI gUI = new GUI();
}
});
}
}