簡體   English   中英

在CardLayout中更換卡片時如何創建新對象?

[英]How do I create new object while changing cards in CardLayout?

目前我正在使用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);
}

不幸的是,所有這些對象都是在游戲開始時創建的。 我需要在每次更換卡時創建新對象並刪除舊對象以節省內存。 這可以通過嗎?

您最好的選擇是調用System.gc(),這只是對垃圾收集器的一個提示,您希望它能夠進行收集。 由於垃圾收集器不確定,因此無法強制立即收集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM