Eu tenho um projeto criado com a ajuda do designer GUI. Aqui está o código do formulário principal.
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; }
Funciona bem. Jar arquivo gera bem, aqui código de 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
Mas quando eu tento executar o arquivo jar, há um erro.
Exception in thread "main" java.lang.NullPointerException at MainForm.(MainForm.java:14) at Main.main(Main.java:13)
Isso mostra que o erro está na linha em que o listener DirectLineOkButton é criado. Eu crio o ouvinte como dito aqui: http://www.jetbrains.com/idea/training/demos/GUI_Designer/GUI_Designer.html no construtor usando cmd + o. Aqui está o código do xml do formulário:
Você deve include o ideauidesigner-maven-plugin
:
org.codehaus.mojo ideauidesigner-maven-plugin 1.0-beta-1 javac2 true true true
e, opcionalmente – se você usar GridLayoutManager
ou JGoodies
– inclua também forms_rt
como dependência:
com.intellij forms_rt 7.0.3
Eu encontrei decisão por mim mesmo. http://glxn.net/2010/08/17/making-a-swing-project-using-intellij-idea-and-gui-builder-with-maven-including-executable-jar/ Você precisa de um plugin especial para fazer projetos maven com intelliji idea designer de gui.
Eu tive o mesmo problema com a construção do meu projeto com o maven. O que resolveu meu problema foi alterar o valor de “Gerar GUI em:” de “Arquivos de class binária” -> “Código-fonte Java” nas configurações (encontrado em Project | Settings | Editor | GUI Designer).
Em seu inicializador dynamic (a parte com o {{}}), você está acessando directLineOkButton
:
directLineOkButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //some action } } });
No entanto, esse campo ainda não foi atribuído, portanto, você obtém um NullPointerException.