添加Jbuttons和Jlabel

时间:2016-01-03 19:25:21

标签: java swing jframe

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

   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);

}

我认为这就是所有相关的,但是如果你需要我在这里首先制作菜单的代码,那就是:

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(); 

 }
}

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

最后这里是主要的,以防你需要它:

{{1}}

1 个答案:

答案 0 :(得分:3)

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

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

if IsVowel
    AMethodIShouldCallOnAllVowels();
else
    AMethodIShouldCallOnAllConsonants();

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