现在我正在制作一个GUI,我得到了这个错误代码
Exception in thread "main" java.awt.IllegalComponentStateException: contentPane cannot be set to null.
at java.desktop/javax.swing.JRootPane.setContentPane(JRootPane.java:594)
at java.desktop/javax.swing.JFrame.setContentPane(JFrame.java:679)
at GUI.main(GUI.java:13)
这是我的基本代码
import javax.swing.*;
import java.awt.*;
public class GUI {
private Container mainPanel;
public static void main(String[] args) {
JFrame frame = new JFrame("Loot and Scoot");
frame.setContentPane(new GUI().mainPanel);
frame.setPreferredSize(new Dimension(1280,700));
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
}
}
我试着用Alt+Enter解决这个问题,但没有什么问题——没有红色文本
您只需要添加一个
mainPanel = new JPanel
我已经正确地编辑了我的代码,所以它现在可以工作了,这里是
import javax.swing.*;
import java.awt.*;
public class GUI {
private static Container mainPanel;
public static void main(String[] args) {
mainPanel = new JPanel();
JFrame frame = new JFrame("Loot and Scoot");
frame.setContentPane(new GUI().mainPanel);
frame.setPreferredSize(new Dimension(1280,700));
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
}
}
import javax.swing.*;
import java.awt.*;
public class GUI extends JPanel{
public static void main(String[] args) {
mainPanel = new JPanel();
JFrame frame = new JFrame("Loot and Scoot");
frame.setContentPane(new GUI());
frame.setPreferredSize(new Dimension(1280,700));
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
}
}