使用IntelliJ IDEA GUI设计器时在$$$setupUI$$$出现空指针异常

kyvafyod  于 2022-11-21  发布在  IntelliJ IDEA
关注(0)|答案(1)|浏览(223)

我 一直 在 尝试 使用 我 在 IntelliJ IDEAS GUI 设计 器 中 制作 的 一 个 GUI 在 我 正在 开发 的 一 个 applet 中 。 当 我 在 根 JPanel 中 只有 一 个 标签 时 , 我 已经 得到 了 运行 的 东西 , 但是 由于 某种 原因 , 当 我 添加 更多 的 组件 时 , 我 得到 了 下面 的 错误 :

java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1095)
at java.awt.Container.add(Container.java:971)
at inputGui.$$$setupUI$$$(inputGui.java)
at inputGui.<init>(inputGui.java:25)
at HelloWorld.init(HelloWorld.java:11)
at sun.applet.AppletPanel.run(AppletPanel.java:435)
at java.lang.Thread.run(Thread.java:745)

中 的 每 一 个
我 的 GUI inputGui.java 类 的 布局 如下 :
( 我 将 在 它 断开 的 地方 标记 :* *//! 已 断开 - 第 25 行 ! * * )

public class inputGui extends JFrame {
private JPanel rootNode;
private JTextField id_field;
private JTextField mi_field;
private JTextField lastName_field;
private JTextField address_field;
//more declorations...

public inputGui() {//initialize GUI
        super( "Hello World" );
        setContentPane( rootNode );//!BROKEN - Line 25!
        pack();
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        setVisible( false );
    }
    public JPanel getRootNode() {
        return rootNode;
    }
    private void createUIComponents() {
        // TODO: place custom component creation code here
    }
}

格式
我 从 Applets 的 ' init ( ) ' 函数 调用 它 :

public class HelloWorld extends JApplet {
    //Called when this applet is loaded into the browser.
    public void init() {
        //Execute a job on the event-dispatching thread; creating this applet's GUI.
        inputGui frame =  new inputGui();//just here to get a clearer error
        try {
            SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                    Container content = getContentPane();
                    inputGui frame =  new inputGui();//init GUI
                    content.add(frame.getRootNode() );//add rootNode to JFRame

                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    }

}

格式
我 只是 不 明白 为什么 添加 组件 会 突然 创建 一 个 空 指针 ! 如果 有 任何 帮助 的 话 , 我 的 元素 是 这样 嵌套 的 :

5vf7fwbs

5vf7fwbs1#

代码来自inputGui.java

private void createUIComponents() {
   // TODO: place custom component creation code here
}

您在UI设计器中的某个组件上选择了“自定义创建”选项。您应该自己创建该组件,否则会失败。取消选中该选项,一切都应该正常。

相关问题