我試圖做一個簡單的應用程序只是爲了試驗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