gpt4 book ai didi

java - 当该类被其他类扩展时如何防止额外的 JFrame

转载 作者:行者123 更新时间:2023-12-01 09:02:45 25 4
gpt4 key购买 nike

我正在制作一个类似嗡嗡声的游戏,其中主要问题是当我创建 JFrame 和面板的类从其他类扩展时,因为通过创建该类的项目,我有 +1 帧。所以我有我不想要的额外框架。代码是这样的:

public static void main(String[] args) {
GameStart game;
game = new GameStart();
game.gReady();
}

public class GameStart extends JFrame{

protected JPanel panel, headline;
protected BorderLayout border;
protected GridLayout grid, head;
protected JLabel question;
protected JButton[] button;
protected JLabel label;
protected JLabel empty;

public GameStart(){
setSize(500,400);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);

panel = new JPanel();
headline = new JPanel();

question = new JLabel();

button = new JButton[4];
for(int i=0;i<4;i++){
button[i] = new JButton();
panel.add(button[i]);
}

label = new JLabel();
empty = new JLabel();

border = new BorderLayout();

grid = new GridLayout(4,1);
head = new GridLayout(1,0);

headline.add(question);
headline.setLayout(head);

setLayout(border);
panel.setLayout(grid);

add(panel, BorderLayout.WEST);
add(headline, BorderLayout.PAGE_START);

panel.setVisible(true);
headline.setVisible(true);
setVisible(true);
}

这是我试图找出的有问题的类

public void gReady(){
GameMenu game;
game = new GameMenu();
game.languageMenu();
}

languageMenu() 甚至可以为空,但 GameMenu() 需要扩展 GameStart()。有什么方法可以防止其他“子”类创建额外的帧吗?

public class GameMenu extends GameStart {
public GameMenu(){}
public void languageMenu(){}
}

最佳答案

因为你在 GameStart 的构造函数中调用了 setVisable,所以它会在你创建它时弹出。从那里删除它并仅在您想要显示该 JFrame 时调用它。

另外,为什么要用 GameMenu 来扩展它?只需创建不同的 JFrame

关于java - 当该类被其他类扩展时如何防止额外的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41544226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com