IntelliJ идея графический дизайнер + Maven

У меня есть проект, созданный с помощью графического дизайнера. Вот код основной формы.

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 формы:



  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      
    
    
    
    
      
        
          
          
        
        
          
        
      
      
        
        
        
        
        
        
        
        
        
          
          
        
        
        
        
          
            
              
              
            
            
              
              
                
                
                
                
              
            
          
          
            
              
                
              
              
            
            
          
          
            
              
              
            
            
              
            
          
        
      
      
        
          
          
        
        
          
        
      
      
        
        
        
        
        
        
        
        
        
          
          
        
        
        
        
          
            
              
              
            
            
              
                
                
                
                
              
            
          
          
            
              
                
              
              
            
            
          
          
            
              
              
            
            
              
            
          
        
      
      
        
        
        
        
        
        
        
          
          
        
        
          
        
        
        
          
            
              
              
            
            
              
            
          
          
            
              
              
            
            
              
            
          
          
            
              
              
            
            
              
            
          
        
      
      
        
        
        
          
          
        
        
          
        
        
        
      
    
  

Ответы на вопрос(4)

ideauidesigner-maven-plugin

<build>
    <plugins>
        <plugin>
            <groupid>org.codehaus.mojo</groupid>
            <artifactid>ideauidesigner-maven-plugin</artifactid>
            <version>1.0-beta-1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>javac2</goal>
                    </goals>
                </execution>
            </executions>

            <configuration>
                <fork>true</fork>
                <debug>true</debug>
                <failonerror>true</failonerror>
            </configuration>
        </plugin>
    </plugins>
</build>

и при желании - если вы используетеGridLayoutManager или жеJGoodies - включить такжеforms_rt как зависимость:

    <dependency>
        <groupid>com.intellij</groupid>
        <artifactid>forms_rt</artifactid>
        <version>7.0.3</version>
    </dependency>
 Panagiotis Drakatos01 авг. 2016 г., 10:02
Thnxx !!!! много
 sumitsu26 апр. 2017 г., 15:54
Обратите внимание, что этот плагин в настоящее время имеет ошибку, которая приводит к сбою сборки с такой ошибкой, как[ERROR] Failed to execute goal org.codehaus.mojo:ideauidesigner-maven-plugin:1.0-beta-1:javac2 (default) on project {{project}}: Execution default of goal org.codehaus.mojo:ideauidesigner-maven-plugin:1.0-beta-1:javac2 failed: {{some-number}} если вы используете лямбда-выражения в вашем источнике. Увидетьstackoverflow.com/questions/32135018/... для деталей.

что решило мою проблему, было изменить значение для "Создать графический интерфейс в: " от "Двоичные файлы классов " -> "Исходный код Java " в настройках (находится в Project | Settings | Editor | GUI Designer).

 sumitsu26 апр. 2017 г., 20:06
Это достойный обходной путь, пока кто-то не исправит плагин. Сделать "Сгенерировать GUI " изменение конфигурации, которое указывает @code_eater, затем создайте проект вручную из IntelliJ каждый раз, когда вы изменяете форму графического интерфейса, чтобы восстановить для нее исходный код Java. Проверьте сгенерированный источник в систему контроля версий (опционально, если выиспользование исходного кода), так что любой, кто сотрудничает с проектом, может пропустить шаг вручную. Затем позвольте Maven работать как обычно на исходном дереве (теперь включая IntelliJ 'сгенерированный код). Единственный улов в том, что вам, возможно, придется добавитьcom.intellij:forms_rt:7.0.3 в качестве основной зависимости.

к:directLineOkButton

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

Тем не менее, это поле неОн еще не был назначен, поэтому вы получаете исключение NullPointerException.

 Sergey Scopin28 сент. 2013 г., 12:20
Да, но он инициализируется через форму. Если я инициализирую его в конструкторе, кнопка выиграетт работа.

http://glxn.net/2010/08/17/making-a-swing-project-using-intellij-idea-and-gui-builder-with-maven-including-executable-jar/ Вам нужен специальный плагин для создания maven проектов с дизайнерским интерфейсом intelliji idea.

Ваш ответ на вопрос