草庐IT

java - IntelliJ gui creator : JPanel gives runtime null pointer exception upon adding any component

coder 2024-03-02 原文

我在使用 IntelliJ 的 java gui 创建时遇到问题。不幸的是,面板背后的大部分代码都隐藏在 gui creator 中,我无法编辑。

我使用 ItelliJ GridLayoutManager 创建了一个空白的 JPanel“questionPanel”。 当我尝试向该面板添加任何内容时,即使面板绝对不为空,我也会收到空指针异常。我还尝试将 JTextField 添加到布局中(出于好奇),但这也无济于事。 JTextField 出现了,但我仍然无法从代码中添加任何内容。

当我将布局管理器更改为其他任何东西(GridBagLayout、FormLayout、BorderLayout 等)时,我不再收到错误,但什么也没有显示。

显示 View .java

private JPanel questionPane;

public void initialize()
{
    questionPane.addMouseListener(new MouseListener() {

        @Override
        public void mouseReleased(MouseEvent e) {
            questionPane.add(new JLabel("Test"));
            System.out.println("Click event received.");
        }
        //other overrides hidden
}

有没有人知道幕后发生了什么,或者有什么方法可以让我将组件放到面板上?谢谢。

示例堆栈跟踪(此跟踪不是由与上面相同的代码生成的,但它是相同的错误):

Exception occurred during event dispatching:
java.lang.NullPointerException

at com.intellij.uiDesigner.core.GridLayoutManager.addLayoutComponent(
GridLayoutManager.java:134)

at java.awt.Container.addImpl(Container.java:1074)
at java.awt.Container.add(Container.java:365)
at [MyProject].UI.View.DisplayView$1.actionPerformed(DisplayView.java:91)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
.....

最佳答案

对于使用 IntelliJ 的 GUI 创建器并收到相同错误的任何人,我通过在代码中手动设置面板的布局管理器而不是在 GUI 创建器中选择不同的布局管理器来解决问题。

示例:

questionPane.setLayout(new BoxLayout(questionPane, BoxLayout.PAGE_AXIS));

关于java - IntelliJ gui creator : JPanel gives runtime null pointer exception upon adding any component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9639017/

有关java - IntelliJ gui creator : JPanel gives runtime null pointer exception upon adding any component的更多相关文章

随机推荐