IntelliJ idea gui designer + maven

我有一个在GUI设计器的帮助下创建的项目。 这是主要forms的代码。

public class MainForm { MainForm() { directLineOkButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //some action } } }); crossLineOkButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //some action }); clearButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //some action }); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //some action }); saveButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //some action }); } public JPanel getMainPanel() { return mainPanel; } private void createUIComponents() { drawingPanel = new DrawingPanel(); } private JPanel mainPanel; private JComboBox directDirectionCombobox; private JButton directLineOkButton; private JButton crossLineOkButton; private JComboBox crossLineComboBox; private JTextField crossLineSizeValue; private JButton clearButton; private JLabel directLineLabel; private JPanel directLinePanel; private JLabel crossLineLabel; private JPanel crossLinePanel; private JPanel okClearButtonPanel; private JTextField directLineSizeValue; private JButton saveButton; private JPanel drawingPanel; private JButton cancelButton; } 

它工作正常。 Jar文件生成很好,这里是pom.xml的代码

   4.0.0 DOC DOC 1.0   org.apache.poi poi 3.9      maven-compiler-plugin 2.3.2  1.6 1.6    org.apache.maven.plugins maven-jar-plugin    true Main      maven-assembly-plugin    Main    jar-with-dependencies       

但是当我尝试运行jar文件时出现了错误。

 Exception in thread "main" java.lang.NullPointerException at MainForm.(MainForm.java:14) at Main.main(Main.java:13) 

它表明错误发生在创建directLineOkButton侦听器的行。 我在这里创建了一个监听器: http : //www.jetbrains.com/idea/training/demos/GUI_Designer/GUI_Designer.html在构造函数中使用cmd + o。 这是xml表单的代码:

  

您必须包含ideauidesigner-maven-plugin

    org.codehaus.mojo ideauidesigner-maven-plugin 1.0-beta-1    javac2     true true true     

并且可选 – 如果您使用GridLayoutManagerJGoodies – 还包括forms_rt作为依赖项:

   com.intellij forms_rt 7.0.3  

使用maven构建项目时遇到了同样的问题。 解决我的问题的方法是将“生成GUI转换为:”的值从“二进制类文件” – >“Java源代码”更改为设置(在项目|设置|编辑器| GUI设计器中找到)。

在动态初始值设定项(带有{{}}的部分)中,您正在访问directLineOkButton

 directLineOkButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //some action } } }); 

但是,该字段尚未分配,因此您将获得NullPointerException。