所以我对java和编程很新(4个月),我正在尝试用菜单制作一个基本的蛇游戏。我通过在框架上添加和删除它们来在每个不同的组件之间切换。这是代码:
public class screen extends Frame {
private static final long serialVersionUID = 1L;
private static screen f;
private static menu ex;
private static loadsettings settings;
public screen(String frameLabel, int width, int height) {
setSize(width, height);
setLocation(50,50);
setResizable(true);
setUndecorated(true);
setVisible(true);
}
public static void main(String[] args){
settings = new loadsettings();
f = new screen("Game", settings.getWindowWidth(), settings.getWindowHeight());
ex = new menu(f,settings);
f.add(ex);
ex.createBufferStrategy(2);
ex.requestFocus();
}
public static void new1Player(){
f.setSize(400,400);
f.removeAll();
player1 ex = new player1(f,settings);
f.add(ex);
ex.createBufferStrategy(2);
ex.requestFocus();
}
public static void new2Player(){
f.setSize(600,600);
f.removeAll();
player2 ex = new player2(f,settings);
f.add(ex);
ex.createBufferStrategy(2);
ex.requestFocus();
}
public static void newMenu(){
f.setSize(400,400);
f.removeAll();
menu ex = new menu(f,settings);
f.add(ex);
ex.createBufferStrategy(2);
ex.requestFocus();
}
}
问题是,每个组件都是Canvas,因此不断添加和删除它们。我只是想知道,这是不好的编码,是否有更好的方法来做到这一点? 感谢。
答案 0 :(得分:0)
了解如何使用CardLayout。
CardLayout对象是容器的布局管理器。它对待 容器中的每个组件都作为卡片。只有一张卡片可见 一段时间,容器充当一堆卡片。首先 添加到CardLayout对象的组件是可见组件 首先显示容器。
如果您愿意,可以使用Canvas,但没有理由不能使用Panel。