java - (IntelliJ GUI Designer) 将组件添加到 JPanel 时出现运行时 NullPointerException

标签 java swing intellij-idea intellij-plugin

正在开发 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 )

如果您有同样的问题:

  • 转到GUI设计器
  • 选择要向其中添加组件的 JPanel
  • 在属性面板中,将布局管理器更改为除GridLayoutManager (IntelliJ)FormLayout (JGoodies)之外的任何内容

IntelliJ GUI Designer 属性面板
IntelliJ GUI Designer properties panel

或者以编程方式

contentPane.setLayout(new BoxLayout());

关于java - (IntelliJ GUI Designer) 将组件添加到 JPanel 时出现运行时 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59475813/

相关文章:

java - OS X 中 Java 7 文件名的编码问题

java - 为什么不能使用父引用访问子字段

java - 将日期转换为 GMT

java - 调整窗口大小时组件移动到原始位置

java - IntelliJ IDEA 14.1 缓慢启动 Tomcat 7 EE Web 应用程序

java - 在 EJB 中使用 "private static"辅助方法

java - 具有属性和内容的元素的 XSD 架构和 JAXB 类

java - 旋转 BufferedImage 并将其保存到像素数组中

java - 当窗口大小改变时扩展框架以填充空间

安卓工作室 : no executable code found at line X on every line