正在开发 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)
最佳答案
经过大量研究,我明白了。问题是,如果 JPanel
的 Layout Manager 等于 GridLayoutManager (IntelliJ )。
如果您有同样的问题:
- 转到GUI设计器
- 选择要向其中添加组件的
JPanel
- 在属性面板中,将布局管理器更改为除GridLayoutManager (IntelliJ)或FormLayout (JGoodies)之外的任何内容
或者以编程方式
contentPane.setLayout(new BoxLayout());
关于java - (IntelliJ GUI Designer) 将组件添加到 JPanel 时出现运行时 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59475813/