您好我正在使用我的java代码创建一个Windows应用程序,但我在使用swing GUI时出现问题。最后,我试图制作一个面板,并为您可以运行的不同报告提供一些选项。现在,我只是想让我的面板弹出一个带有警报的按钮。这是我的代码。由于这是intellij IDEA,因此并不是GUI的任何代码,而是在.form文件中。我想在JButton按钮上添加一个关于hi的事件监听器。我得到的错误是空指针执行。我究竟做错了什么?在此先感谢。
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 :(得分:2)
问题是你正在调用你没有创建的panelMain
实例:
frame.setContentPane(new App().panelMain);
您需要先实例化:
private JPanel panelMain;
也许你可能想要使用encapsulation,我相信这是一种很好的做法。