kev*_*948 11 java swing intellij-idea jpanel
我在使用IntelliJ的java gui创建时遇到了问题.不幸的是,面板背后的大部分代码都隐藏在gui创建者中,而我不能编辑.
我用ItelliJ GridLayoutManager创建了一个空白的JPanel"questionPanel".当我尝试向该面板添加任何内容时,即使面板绝对不为null,我也会得到一个空指针异常.我也尝试将JTextField添加到布局中(出于好奇心),这也没有帮助.JTextField显示,但我仍然无法在代码中添加任何内容.
当我将布局管理器更改为其他任何东西(GridBagLayout,FormLayout,BorderLayout等)时,我不再出错,但没有任何显示.
DisplayView.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)
.....
kev*_*948 13
对于使用IntelliJ的GUI创建者并收到相同错误的任何人,我通过在代码中手动设置面板的布局管理器而不是在GUI创建者中选择不同的布局管理器来解决问题.
例:
questionPane.setLayout(new BoxLayout(questionPane, BoxLayout.PAGE_AXIS));
| 归档时间: | 
 | 
| 查看次数: | 6012 次 | 
| 最近记录: |