(IntelliJ GUI 设计器)将组件添加到 JPanel 时出现运行时 NullPointerException

(IntelliJ GUI Designer) Runtime NullPointerException upon adding a component to a JPanel

正在开发一个 IntelliJ 插件并尝试在 JButton 上单击将 JLabel 组件添加到 JPanel,这是我的代码片段。

addLabelButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        contentPane.add(new JLabel("Hi, JLabel!"));
        contentPane.revalidate();
        contentPane.repaint();
    }
});

点击 JButton 我收到 运行 时间错误。

2020-01-02 17:44:16,118 [ 30502] ERROR - llij.ide.plugins.PluginManager - null java.lang.NullPointerException at com.intellij.uiDesigner.core.GridLayoutManager.addLayoutComponent(GridLayoutManager.java:134) at java.desktop/java.awt.Container.addImpl(Container.java:1152) at java.desktop/java.awt.Container.add(Container.java:436)

经过大量研究,我明白了。问题是如果 JPanelLayout Manager 等于 GridLayoutManager (IntelliJ),则无法将组件添加到 JPanel .

如果您遇到同样的问题:

  • 转到 GUI 设计器
  • Select JPanel 你想给它添加一个组件
  • 在属性面板中,将 Layout Manager 更改为 GridLayoutManager (IntelliJ)FormLayout (JGoodies )

IntelliJ GUI Designer 属性面板

或以编程方式

contentPane.setLayout(new BoxLayout());