gpt4 book ai didi

java - 添加 Jbutton 和 Jlabel

转载 作者:行者123 更新时间:2023-12-01 21:54:33 25 4
gpt4 key购买 nike

所以我的代码已经制作了一个由按钮和标签组成的开始菜单。当按下其中一个按钮时,我想删除所有内容(确实如此)并显示一个新标签和一个按钮。只有新项目没有出现,请帮忙

public void HighScoreScreen(String HighScores){
//first we need to get rid of what's already there (this works)
remove(title);
remove(newGameButton);
remove(twoPlayerButton);
remove(highScore);

//now adding what I want to show (doesn't work)
highScoreSheet = new JLabel(HighScores);
gbc.gridx = 0;
gbc.gridy = 0;
add(highScoreSheet, gbc);

menu = new JButton("Menu");
gbc.gridx = 0;
gbc.gridx = 1;
add(menu, gbc);
repaint();
}

我认为这就是相关的全部内容,但如果您需要我首先在此处制作菜单的代码,那就是:

   public GUI(){
super("Snake Game");

setLayout(new GridBagLayout());

gbc.insets = new Insets(20, 20, 0, 0);

title = new JLabel("SNAKE");
gbc.gridx = 0;
gbc.gridy = 0;
add(title, gbc);

newGameButton = new JButton("New Game");
gbc.gridx = 0;
gbc.gridy = 1;
add(newGameButton, gbc);

twoPlayerButton = new JButton("2 player Mode");
gbc.gridx = 0;
gbc.gridy = 2;
add(twoPlayerButton, gbc);

highScore = new JButton("HighScores");
gbc.gridx = 0;
gbc.gridy = 3;
add(highScore, gbc);

ButtonHandler handler = new ButtonHandler();

newGameButton.addActionListener(handler);
twoPlayerButton.addActionListener(handler);
highScore.addActionListener(handler);

}

此代码引用的操作列表器位于此类中的一个类中,并且工作正常,当按下 highscore 时,它​​将执行其操作,然后调用我显示的第一个代码块。

最后这是主要内容,以防万一您需要它:

public class SnakeGame extends Canvas implements Runnable {

public boolean read = false;

public SnakeGame(){

GUI frame = new GUI();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,300);
frame.setVisible(true);
}

public void run(){

}
public static void main(String[] args) {
SnakeGame Game = new SnakeGame();

}
}

最佳答案

不要在 Swing 应用程序中混合使用 AWT 组件。 Canvas 是 AWT。使用 JPanel 进行自定义绘画。

在可见 GUI 上添加/删除组件时的基本代码是:

panel.remove(...);
panel.add(...);
panel.revalidate(); // to invoke the layout manager
panel.repaint();

如果您不调用布局管理器,则组件的大小为 0,因此无需绘制任何内容。

关于java - 添加 Jbutton 和 Jlabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580655/

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