Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IntelliJ idea gui designer + maven

Tags:

I have a project created with help of GUI designer. Here is code of main form.

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; } 

It works fine. Jar file generates fine, here code of pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>      <groupId>DOC</groupId>     <artifactId>DOC</artifactId>     <version>1.0</version>     <dependencies>         <dependency>             <groupId>org.apache.poi</groupId>             <artifactId>poi</artifactId>             <version>3.9</version>         </dependency>     </dependencies>      <build>         <plugins>             <plugin>                 <artifactId>maven-compiler-plugin</artifactId>                 <version>2.3.2</version>                 <configuration>                     <source>1.6</source>                     <target>1.6</target>                 </configuration>             </plugin>              <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-jar-plugin</artifactId>                 <configuration>                     <archive>                         <manifest>                             <addClasspath>true</addClasspath>                             <mainClass>Main</mainClass>                         </manifest>                     </archive>                 </configuration>             </plugin>              <plugin>                 <artifactId>maven-assembly-plugin</artifactId>                 <configuration>                     <archive>                         <manifest>                             <mainClass>Main</mainClass>                         </manifest>                     </archive>                     <descriptorRefs>                         <descriptorRef>jar-with-dependencies</descriptorRef>                     </descriptorRefs>                 </configuration>             </plugin>         </plugins>     </build>  </project> 

But when I try to run jar file there is a mistake.

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

It show that mistake is at the line where directLineOkButton listener is created. I create listener like said here: http://www.jetbrains.com/idea/training/demos/GUI_Designer/GUI_Designer.html in constructor using cmd+o. Here is code of xml of form:

<?xml version="1.0" encoding="UTF-8"?> <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="MainForm">   <grid id="27dc6" binding="mainPanel" layout-manager="FormLayout">     <rowspec value="center:23px:noGrow"/>     <rowspec value="top:3dlu:noGrow"/>     <rowspec value="center:47px:noGrow"/>     <rowspec value="top:3dlu:noGrow"/>     <rowspec value="center:max(d;4px):noGrow"/>     <rowspec value="top:3dlu:noGrow"/>     <rowspec value="center:max(d;4px):noGrow"/>     <rowspec value="top:7dlu:noGrow"/>     <rowspec value="center:25px:noGrow"/>     <rowspec value="top:174dlu:noGrow"/>     <rowspec value="center:max(d;4px):noGrow"/>     <colspec value="fill:d:noGrow"/>     <colspec value="left:4dlu:noGrow"/>     <colspec value="fill:452px:noGrow"/>     <constraints>       <xy x="20" y="20" width="797" height="453"/>     </constraints>     <properties/>     <border type="none"/>     <children>       <component id="3b663" class="javax.swing.JLabel" binding="directLineLabel">         <constraints>           <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>           <forms/>         </constraints>         <properties>           <text value="Direct Line"/>         </properties>       </component>       <grid id="499e0" binding="directLinePanel" layout-manager="FormLayout">         <rowspec value="center:d:grow"/>         <colspec value="fill:98px:noGrow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:80px:grow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:max(d;4px):noGrow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:max(d;4px):noGrow"/>         <constraints>           <grid row="1" column="0" row-span="2" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>           <forms/>         </constraints>         <properties/>         <border type="none"/>         <children>           <component id="c383d" class="javax.swing.JComboBox" binding="directDirectionCombobox">             <constraints>               <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>               <forms/>             </constraints>             <properties>               <enabled value="true"/>               <model>                 <item value="Вверх"/>                 <item value="Вниз"/>                 <item value="Вправо"/>                 <item value="Влево"/>               </model>             </properties>           </component>           <component id="17aa1" class="javax.swing.JTextField" binding="directLineSizeValue">             <constraints>               <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">                 <preferred-size width="150" height="-1"/>               </grid>               <forms defaultalign-horz="false"/>             </constraints>             <properties/>           </component>           <component id="44fc7" class="javax.swing.JButton" binding="directLineOkButton">             <constraints>               <grid row="0" column="4" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>               <forms/>             </constraints>             <properties>               <text value="OK"/>             </properties>           </component>         </children>       </grid>       <component id="5a571" class="javax.swing.JLabel" binding="crossLineLabel">         <constraints>           <grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>           <forms/>         </constraints>         <properties>           <text value="Cross Line"/>         </properties>       </component>       <grid id="77f1a" binding="crossLinePanel" layout-manager="FormLayout">         <rowspec value="center:d:grow"/>         <colspec value="fill:98px:noGrow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:80px:grow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:max(d;4px):noGrow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:max(d;4px):noGrow"/>         <constraints>           <grid row="6" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>           <forms/>         </constraints>         <properties/>         <border type="none"/>         <children>           <component id="32368" class="javax.swing.JComboBox" binding="crossLineComboBox">             <constraints>               <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>               <forms/>             </constraints>             <properties>               <model>                 <item value="Вверх-вправо"/>                 <item value="Вверх-влево"/>                 <item value="Вниз-вправо"/>                 <item value="Вниз-влево"/>               </model>             </properties>           </component>           <component id="dbf23" class="javax.swing.JTextField" binding="crossLineSizeValue">             <constraints>               <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">                 <preferred-size width="150" height="-1"/>               </grid>               <forms defaultalign-horz="false"/>             </constraints>             <properties/>           </component>           <component id="c5c8a" class="javax.swing.JButton" binding="crossLineOkButton">             <constraints>               <grid row="0" column="4" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>               <forms/>             </constraints>             <properties>               <text value="OK"/>             </properties>           </component>         </children>       </grid>       <grid id="53bbc" binding="okClearButtonPanel" layout-manager="FormLayout">         <rowspec value="center:d:noGrow"/>         <colspec value="fill:d:noGrow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:max(d;4px):noGrow"/>         <colspec value="left:4dlu:noGrow"/>         <colspec value="fill:max(d;4px):noGrow"/>         <constraints>           <grid row="8" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>           <forms/>         </constraints>         <properties>           <enabled value="false"/>         </properties>         <border type="none"/>         <children>           <component id="41ba7" class="javax.swing.JButton" binding="saveButton">             <constraints>               <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>               <forms/>             </constraints>             <properties>               <text value="Сохранить"/>             </properties>           </component>           <component id="a6bf6" class="javax.swing.JButton" binding="clearButton">             <constraints>               <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>               <forms/>             </constraints>             <properties>               <text value="Очистить"/>             </properties>           </component>           <component id="40f1c" class="javax.swing.JButton" binding="cancelButton">             <constraints>               <grid row="0" column="4" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>               <forms/>             </constraints>             <properties>               <text value="Отменить"/>             </properties>           </component>         </children>       </grid>       <grid id="2e94e" binding="drawingPanel" custom-create="true" layout-manager="FormLayout">         <rowspec value="center:d:grow"/>         <colspec value="fill:d:grow"/>         <constraints>           <grid row="0" column="2" row-span="11" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>           <forms/>         </constraints>         <properties>           <background color="-1"/>         </properties>         <border type="none"/>         <children/>       </grid>     </children>   </grid> </form> 
like image 854
Sergey Scopin Avatar asked Sep 27 '13 11:09

Sergey Scopin


People also ask

Can I create GUI in IntelliJ?

GUI Designer in IntelliJ IDEA enables you to create graphical user interfaces (GUI) for your applications using Swing library components. The tool helps you speed up the most frequent tasks: creating dialogs and groups of controls to be used in a top-level container such as a JFrame.

Does IntelliJ IDEA include Maven?

Maven IntelliJ IDEA supports a fully-functional integration with Maven that helps you automate your building process. You can easily create a new Maven project, open and sync an existing one, add a Maven support to any existing IntelliJ IDEA project, configure and manage a multi-module project.

How do I get Maven panel in IntelliJ?

If you removed the Maven tool window from the sidebar, select View | Tool Windows | Maven from the main menu to reopen it.


1 Answers

You must include 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> 

and optionally - if you use GridLayoutManager or JGoodies - include also forms_rt as dependency:

    <dependency>         <groupId>com.intellij</groupId>         <artifactId>forms_rt</artifactId>         <version>7.0.3</version>     </dependency> 
like image 129
user11153 Avatar answered Oct 13 '22 07:10

user11153