기본적으로 나는 JFrame 클래스에서 상속하고 자체 메서드가있는 GUI가 있습니다.JFrame GUI 프로그램이 런타임 오류를 발생시키는 이유는 무엇입니까?
그것은 다음 오류를
Exception in thread "main" java.lang.NullPointerException
at MilesPerGallonApp.buildPanel(MilesPerGallonApp.java:33)
at MilesPerGallonApp.<init>(MilesPerGallonApp.java:20)
at MilesPerGallonApp.main(MilesPerGallonApp.java:58)
을 제공 내 모든 변수가 제대로 선언 된 것을 확인
import javax.swing.*;
import java.awt.event.*;
public class MilesPerGallonApp extends JFrame
{
private JPanel panel;
private JLabel messageLabel1;
private JLabel messageLabel2;
private JTextField distanceTextField;
private JTextField gallonTextField;
private JButton calcButton;
private final int WINDOW_WIDTH = 500;
private final int WINDOW_HEIGHT = 280;
public MilesPerGallonApp()
{
super("Fuel Economy Calculator");
setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buildPanel();
add(panel);
setVisible(true);
}
private void buildPanel()
{
messageLabel1 = new JLabel("Enter maximum distance.");
messageLabel2 = new JLabel("Enter tank capacity.");
distanceTextField = new JTextField(8);
gallonTextField = new JTextField(4);
calcButton = new JButton("Calculate MPG");
panel.add(messageLabel1);
panel.add(messageLabel2);
panel.add(distanceTextField);
panel.add(calcButton);
}
private class CalcButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String gallonString;
String milesString;
double MPG;
gallonString = gallonTextField.getText();
milesString = distanceTextField.getText();
MPG = Double.parseDouble(milesString)/Double.parseDouble(gallonString);
JOptionPane.showMessageDialog(null, "The fuel economy is " + MPG + " miles per gallon.");
}
}
public static void main(String[] args)
{
new MilesPerGallonApp();
}
}
소스 코드를입니다. 정확히 무엇이 잘못되었는지 나는 잘 모르겠습니다. 디버깅의 전문가가 더 많은 사람이 도움을 줄 수 있습니까?
감사합니다. panel
가 null로, 당신이 그것을 (panel.add(messageLabel1);
)의 일부 메서드를 호출하려고
언제 NullPointerException이 발생합니까? – gprathour