返回在另一个类中的方法中创建的对象删除JFrame的内容

时间:2016-02-15 19:33:53

标签: java jframe return

在我的游戏中,使用

创建播放器
handler.addPlayer(new Player(x, y, width, height, ID, handler));

到目前为止它有效,但现在我需要在另一个Classes方法中使用此播放器 有没有办法检测此播放器并通过方法返回对象?

此外,当玩家死亡时,我希望主类中的JFrame停止显示游戏,并显示菜单屏幕。我尝试使用

JPanel mp = new JPanel();
mp.setBackground(Color.BLACK);
[.. adding a button here ... ]
myFrame.removeAll();
myFrame.add(mp);

但游戏崩溃了。

1 个答案:

答案 0 :(得分:0)

您可以在所需的类中始终拥有该Object的实例,因此您只需将实际对象作为参数传递给新类的构造函数,或者通过setter设置它。例如,如果您在名为A的类中需要该播放器:

public class A {
    // some attributes
    Player p = null;

    public A(Player p){
        this.p = p;
    }

    public void setPlayer(Player p) {
        this.p = p;
    }
}

然后,从您定义并将播放器初始化为handler.addPlayer(...)的类中,您可以创建一个新的A对象,并将实际播放器作为A构造函数中的参数传递,或者使用setPlayer()。这样,您就可以在类Player内拥有实际A的实例。

希望这有帮助。