2016-12-20 8 views
-1

こんにちは私のJavaコードを使ってWindowsアプリケーションを作っていますが、GUIのスイングに問題があります。最終的に私はパネルを作成しようとしており、あなたが実行できるさまざまなレポートのためのいくつかのオプションがあります。今のところ、私はパネルをポップアップさせ、アラートのボタンを取得しようとしています。ここに私のコードです。これはintellij IDEAなので、実際にはGUI用のコードはありませんが、.formファイルにあります。私は、JButtonボタンにイベントリスナーを追加したいと思っています。私が得るエラーはnullポインタの実行です。私は間違って何をしていますか?前もって感謝します。Java Swing GUIエラーNull Pointer

package com.project.go; 

import javax.swing.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

/** 
* Created by Joe on 12/16/2016. 
*/ 
public class App { 
private JButton button; 
private JPanel panelMain; 
private JTextPane MenuWelcome; 
private JComboBox pullDownBox; 
private JButton Exit; 
private JTextArea DateField; 

public static void main(String[] args) { 
    JButton button = new JButton("run"); 
    JFrame frame = new JFrame("App"); 
    frame.setContentPane(new App().panelMain); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.pack(); 
    frame.setVisible(true); 
    new App(); 

} 

public App() { 
    button.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      JOptionPane.showMessageDialog(null, "hi"); 
     } 
    }); 
} 

private void createUIComponents() { 
    // TODO: place custom component creation code here 
} 
} 
+0

デバッガを使用すると、すぐにこの問題を解決する必要があります。つまり、あなたが頼っていることに注意してください。 IntelliJフォームプラグインはかなり悪いことがあります。 – Paul

答えて

2

問題は、あなたがいずれかを作成するdidntのpanelMainのインスタンスを呼び出しているです:

frame.setContentPane(new App().panelMain); 

あなたが最初にインスタンス化する必要があります。

private JPanel panelMain; 

たぶん、あなたはencapsulationどれを使用する場合があります私はうまくいくと信じています。