我正在尝试intellij,并正在尝试进行一些摇摆开发。我遇到了一个我从未在 Eclipse 上遇到过的问题,我想知道我是否设置了错误。
这是我的驱动程序运行的 GUI 类:
package view;
import javax.swing.*;
import java.awt.*;
public class View {
private JPanel panel;
public void run() {
JFrame frame = new JFrame("Vending Machine");
frame.setContentPane(new View().panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridBagLayout());
}
}
据我所知,我的 run() 方法非常简单。但是,在编译时,这是我收到的错误:
Exception in thread "main" java.awt.IllegalComponentStateException: contentPane cannot be set to null.
at javax.swing.JRootPane.setContentPane(JRootPane.java:621)
at javax.swing.JFrame.setContentPane(JFrame.java:698)
at view.View.run(View.java:13)
at model.VendingMachine.<init>(VendingMachine.java:14)
at controller.Driver.main(Driver.java:14)
无论出于何种原因,intellij 自动创建的代码没有正确初始化 JPanel,这就是它为空的原因。
我已经尝试在 run (panel = new JPanel();) 中自己实例化它,但这并没有帮助。
这很明显吗?在 Eclipse 中开始使用 swing 时,我从未遇到过这个问题。