【发布时间】:2012-08-15 02:52:19
【问题描述】:
我试图通过传递graphics 让每个对象将自己绘制到JPanel 中,但我收到java.lang.NullPointerException 错误。
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JPanel {
private static final long serialVersionUID = 1L;
Main panel;
Player mainPlayer;
public static void main(String[] args) {
JFrame frame = new JFrame("Asteroids");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Main panel = new Main();
frame.add(panel);
frame.setBackground(Color.BLACK);
frame.setSize(500, 400);
frame.setVisible(true);
}
public void paintComponent(Graphics g) {
mainPlayer.paintComponent(g);
}
}
然后这段代码在不同的 .java 文件中
import java.awt.Graphics;
public class Player {
public Player() {
}
public void paintComponent(Graphics g) {
}
}
有谁知道为什么这段代码不起作用?
它给了我:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Main.paintComponent(Main.java:23)
【问题讨论】:
-
让我们从
mainPlayer在您的代码示例中的任何地方都没有初始化的事实开始 -
我现在感觉不太聪明……
-
别担心,这发生在我们最好的人身上。
-
欢迎来到编程的世界,聪明的人会觉得自己很笨;)
-
哈哈,我想我会喜欢这里的。
标签: java swing class graphics jpanel