所以,我有一个Java代码,说它成功但我得到的错误甚至不是我的项目。我不能做任何事情虽然....我已经尝试只导入所需的部分,我仍然得到相同的错误。我甚至不知道什么是“容器”。我刚刚完成了Java基础知识并继续学习。现在我有第二台计算机(macbook air),它有相同的代码,但它根本没有任何错误。可能是我的IDE,Java JDK还是什么?或者只是导入文件的奇怪之处?谢谢。 代码:
package windowsgui;
import javax.swing.*;
import java.awt.*;
public class WindowsGUI extends JFrame {
private JLabel label;
private JButton button;
private JTextField testfield;
public WindowsGUI() {
setLayout (new FlowLayout());
label = new JLabel("This is a label");
add(testfield);
button = new JButton("This is a button");
add(button);
}
public static void main (String args[]) {
WindowsGUI gui = new WindowsGUI();
gui.setSize(600, 400);
gui.setResizable(false);
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setVisible(true);
}
}
错误:
run:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1091)
at java.awt.Container.add(Container.java:1003)
at javax.swing.JFrame.addImpl(JFrame.java:564)
at java.awt.Container.add(Container.java:415)
at windowsgui.WindowsGUI.<init>(WindowsGUI.java:19)
at windowsgui.WindowsGUI.main(WindowsGUI.java:27)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
答案 0 :(得分:1)
label = new JLabel("This is a label");
add(label);
testfield = new JTextField("This is text Field");
add(testfield);
button = new JButton("This is a button");
add(button);
您没有初始化测试字段,但是您尝试添加测试字段,因此它给出了null pointerException。解决方案:初始化测试字段然后添加它。