我试图做一个简单的应用程序只是为了试验Java图形,但我陷入了这个错误,所以我真的很感激,如果有人可以帮助我。 :)这里是什么导致了“NullPointerException”错误,我该如何解决它?
我得到当我试图运行下面的代码下面
Exception in thread "main" java.lang.NullPointerException
at Main.draw(Main.java:41)
at Main.createGUI(Main.java:36)
at Main.main(Main.java:20)
Java Result: 1
错误:
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JFrame {
private static final long serialVersionUID = 1L;
public JPanel panel;
public static void main(String[] args) {
Main m = new Main();
m.setSize(500, 700);
m.setDefaultCloseOperation(EXIT_ON_CLOSE);
m.createGUI();
m.setVisible(true);
}
private void createGUI() {
Container window = getContentPane();
panel = new JPanel();
panel.setPreferredSize(new Dimension(500, 700));
panel.setBackground(Color.WHITE);
window.add(panel);
Graphics paper = panel.getGraphics();
draw(paper);
}
private void draw(Graphics g){
g.drawRect(100, 100, 100, 100);
}
}
谁能告诉我怎样才能解决这个问题,什么是原因的错误?
谢谢!
注意:您可以随时阅读堆栈跟踪,这将告诉你确切的行,其中的例外是抛出。在NullPointerException的情况下,您可以查看每行上的_dereferenced_对象,并迅速找出它。 – jahroy 2013-03-19 02:16:43
JLS中不存在术语“取消引用”,我不相信它应该被使用,因为当它来自具有语言级别指针的其他语言时可能会引起混淆。 (我通常可以使用*更抽象的术语,但不能使用*更少的抽象术语。) – 2013-03-19 02:37:06