如何在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);}}
3 回答

慕码人2483693
TA贡献1860条经验 获得超9个赞
添加GamePanel后,执行 validate();
public void gameOn() {
remove(mp);
gp = new GamePanel(5);
add(gp);
validate();
}

aluckdog
TA贡献1847条经验 获得超7个赞
你需要repaint()
在删除一个面板并添加另一个面板后,setVisible(true)
应该在将组件添加到框架后完成,我建议在EDT线程上进行大量的UI更改,以避免干扰。
添加回答
举报
0/150
提交
取消