Java 运行GUI时出现NullPointerException错误
我对GUI的了解有限。我正在尝试创建一个非常基本的GUI,到目前为止,我有以下几点:Java 运行GUI时出现NullPointerException错误,java,user-interface,nullpointerexception,Java,User Interface,Nullpointerexception,我对GUI的了解有限。我正在尝试创建一个非常基本的GUI,到目前为止,我有以下几点: public class Controller { // variables private JFrame ACMEFrame; private JPanel contentPane; private JPanel contentPanel; private JPanel detailsPanel; private JPanel buttonPanel;
public class Controller {
// variables
private JFrame ACMEFrame;
private JPanel contentPane;
private JPanel contentPanel;
private JPanel detailsPanel;
private JPanel buttonPanel;
private JLabel label;
private JComboBox box;
private JButton ok;
private JButton quit;
// constructor
public Controller() {
handleAddCruiseToShip();
}
public final void handleAddCruiseToShip() {
ACMEFrame = new JFrame("Assign Cruise to Ship"); // name of frame
ACMEFrame.setSize(600, 400); // size of JFrame
ACMEFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // exit JFrame on close
contentPanel = new JPanel();
contentPanel.setBackground(Color.GREEN);
quit = new JButton("Quit");
ok = new JButton("Ok");
detailsPanel.add(quit);
detailsPanel.add(ok);
ACMEFrame.add(detailsPanel);
ACMEFrame.pack();
ACMEFrame.setVisible(true);
}
}
但是,在运行测试类(guiTest)时,我遇到了以下错误:
Exception in thread "main" java.lang.NullPointerException
at Controller.AddCruiseToShip(Controller.java:42)
at Controller.<init>(Controller.java:26)
at guiTest.main(guiTest.java:10)
}
我如何克服这个问题
谢谢。您从未实例化过您的detailsPanel。然后将按钮添加到它并将其添加到ACMEFrame。这会导致空指针异常,因为您只声明了它。在使用contentPanel时,您需要添加如下内容:
detailsPanel = new JPanel();
因此,对contentPanel执行某些操作可能是有意义的,因为您已经创建了它…可能与
Controller3
的位置重复?也发布测试代码,因为这是错误发生的地方。发布主函数,甚至是Controller3类。我认为您需要向该类添加一个默认构造函数@user3650137此答案对您有帮助吗?
detailsPanel = new JPanel();