我有一个JFrame
,并自动由Eclipse生成一个内容面板。
public JPanel contentPane = new JPanel();
public static Game frame;
主方法创建新的框架:
frame = new Game();
frame.setVisible(true);
创建新实例:
public Game() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane.setLayout(null);
contentPane.setSize(500, 500);
setContentPane(contentPane);
在最后,我想创建一个新的对象,它是我的Field.java类的扩展(继承)
JLabel
。new Field(50, 50, 64, 64);
Field.java:
public Field(int x, int y, int x2, int y2) {
setBounds(x, y, x2, y2);
Game.frame.contentPane.add(this);
}
我希望你能理解我想做的事情。当我将字段添加到Game
类的contentPane
中时,我遇到了一个NullPointerException
。我认为contentPane
是null
。但是为什么呢?我应该怎么做才能避免这种情况?
错误信息:
java.lang.NullPointerException
at Hackbaellchen.Field.<init>(Field.java:23)
at Hackbaellchen.Lemmings.<init>(Game.java:73)
at Hackbaellchen.Lemmings$1.run(Game.java:27)
Field.java:23 是指 Game.frame.contentPane.add(this);
Game.java:73 是指 new Field(50, 50, 64, 64);