“线程中的异常”主“java.lang.NullPointerException”变量未初始化,没有看到原因

时间:2014-11-04 01:29:56

标签: java variables nullpointerexception initialization

我已经坚持了一段时间了,如果有人能给我一些见解,那将非常感激。堆栈跟踪控制台指向frame.add(showname);以及新的GradeProg();控制台声明:

Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1040)
at java.awt.Container.add(Container.java:958)
at javax.swing.JFrame.addImpl(JFrame.java:540)
at java.awt.Container.add(Container.java:363)
at GradeProg.<init>(GradeProg.java:39)
at GradeProg.main(GradeProg.java:68)

根据我的理解,部分归功于这个伟大的网站,是showame变量未初始化,但我相信我已经初始化它。这是代码:

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

@SuppressWarnings("serial")
public class GradeProg extends JFrame implements ActionListener {

JLabel label, label2, showname, showgrade;
TextField field, field2;
JFrame frame;
JButton enter;
String grade, name;
int parse;

public GradeProg() {

    frame = new JFrame("Student Grades");
    frame.setLayout(new GridBagLayout());
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
    frame.setSize(600, 300);

    label = new JLabel("Student Name: ");
    field = new TextField("", 12);

    label2 = new JLabel("  Score  ");
    field2 = new TextField("", 5);

    enter = new JButton("Enter");
    enter.addActionListener(this);

    frame.add(label);
    frame.add(field);
    frame.add(label2);
    frame.add(field2);
    frame.add(enter);
    frame.add(showname);
    frame.add(showgrade);

}

@Override
public void actionPerformed(ActionEvent e) {

    parse = Integer.parseInt(field2.getText());

    if (parse >= 90 && parse <= 100) {
        grade = "A";
    } else if (parse >= 80 && parse <= 89) {
        grade = "B";
    } else if (parse >= 70 && parse <= 79) {
        grade = "C";
    } else if (parse >= 60 && parse <= 69) {
        grade = "D";
    } else if (parse >= 0 && parse <= 59) {
        grade = "F";
    }

    showgrade = new JLabel("Grade: " + grade);
    showname = new JLabel(field.getText());
}

public static void main(String[] args)

{
    new GradeProg();
}

}

同样,我们非常感谢任何帮助或整体建议。 Thakns

0 个答案:

没有答案