【问题标题】:(IntelliJ GUI Designer) Runtime NullPointerException upon adding a component to a JPanel(IntelliJ GUI 设计器)将组件添加到 JPanel 时出现运行时 NullPointerException
【发布时间】:2019-12-25 06:33:16
【问题描述】:

使用 IntelliJ 插件并尝试在单击 JButton 时将 JLabel 组件添加到 JPanel,这是我的代码的 sn-p。

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] 错误 - llij.ide.plugins.PluginManager - null java.lang.NullPointerException 在 com.intellij.uiDesigner.core.GridLayoutManager.addLayoutComponent(GridLayoutManager.java:134) 在 java.desktop/java.awt.Container.addImpl(Container.java:1152) 在 java.desktop/java.awt.Container.add(Container.java:436)

【问题讨论】:

  • 哪个版本的 intellij 和哪个 java 版本?此外,在运行 java 之前,您可以添加 --illegal-access=deny 以便 java 在非法反射访问时抛出异常,您可以检查跟踪以确定原因。
  • @Balaji 我已经更新了问题并添加了 IntelliJ 和 Java 版本,您可以再看看吗?
  • 不要发布文字图片。 Edit 添加文字本身!
  • @YamanKATBY 您可以通过使用 --illegal-access=deny 运行您的程序来共享更新的跟踪吗
  • 试图将 JLabel 添加到 JPanel - 您的代码实际上是在添加 Label,它是 AWT 组件,而不是 Swing 组件。

标签: java swing intellij-idea intellij-plugin


【解决方案1】:

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

如果你有同样的问题:

  • 转到 GUI 设计器
  • 选择您要向其添加组件的JPanel
  • 从属性面板,将 Layout Manager 更改为 GridLayoutManager (IntelliJ)FormLayout (JGoodies)

IntelliJ GUI Designer 属性面板

或以编程方式

contentPane.setLayout(new BoxLayout());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2020-03-28
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多