如何在JFrame中切换JPanels

如何在JFrame中切换JPanels

关于javas组件的相当绿色等等,请原谅我,如果我提供的信息不够!

考虑下面的代码。添加菜单和菜单显示在框架中,没有问题。我想在调用gameOn()时删除菜单而不是启动游戏。下面的代码只使Frames表面“空白”,没有添加游戏面板。

有关如何修复它的任何想法/建议?MenuPanel有一个mouselistener。

public class GameFrame extends JFrame {private MenuPanel mp; //extends JPanelprivate GamePanel gp; //extends JPanelpublic GameFrame() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(new Dimension(GameFrame.XSIZE, GameFrame.YSIZE));
    setLocationRelativeTo(null);
    setVisible(true);
    mp = new MenuPanel(this);

    add(mp);}public void gameOn() {
    remove(mp);
    GamePanel gp = new GamePanel(5);
    add(gp);}}


守候你守候我
浏览 469回答 3
3回答

慕码人2483693

添加GamePanel后,执行 validate();public void gameOn() {remove(mp);gp = new GamePanel(5);add(gp);validate();}

aluckdog

你需要repaint()在删除一个面板并添加另一个面板后,setVisible(true)应该在将组件添加到框架后完成,我建议在EDT线程上进行大量的UI更改,以避免干扰。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java