目前我使用CardLayout在游戏中的不同guis之间跳转(主菜单,设置,记分牌等):
static JPanel panels = new JPanel();
static CardLayout cl = new CardLayout();
panels.setLayout(cl);
panels.add(new Menu(), "menu");
panels.add(new Game(), "game");
panels.add(new Scoreboard(), "scoreboard");
panels.add(new Settings(), "settings");
panels.add(new Info(), "info");
然后在同一个班级我得到了静态方法,允许我在游戏的JComponents(菜单,游戏,记分牌,设置,信息)之间跳转。
public static void changePanel(String panel){
cl.show(panels, panel);
}
不幸的是,所有这些对象都是在游戏开始时创建的。 我需要在每次更换卡时创建新对象并删除旧对象以节省内存。这可以通过吗?
答案 0 :(得分:0)
您最好的选择是调用System.gc(),这只是对垃圾收集器的一个提示,您希望它能够进行收集。由于垃圾收集器不确定,因此无法强制立即收集。