我試圖通過傳遞graphics
來讓每個對象自己進入JPanel
,但我得到的錯誤是java.lang.NullPointerException
。將paintComponent傳遞給另一個類錯誤
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'沒有initalised這個事實開始吧,在你的代碼示例的任何地方 – MadProgrammer 2012-08-15 03:00:49
我現在不覺得很聰明...... – semicolon 2012-08-15 03:20:18
不要擔心,它發生在我們身上。 – axl 2012-08-15 03:22:30