删除JPanel的所有组件

时间:2014-05-24 03:34:55

标签: java swing user-interface

我做了很多研究并尝试过很多东西,但我的目标是做到这一点:我现在有三个按钮。对于按钮1 - 播放按钮,我想单击它,结果是删除屏幕上的所有按钮。

这是我目前的代码

public class Menu extends JFrame implements ActionListener {

//Variables here

public void createUI() {
    frame = new JFrame();

    frame.setTitle("Maze Game");
    frame.setSize(500, 500);

    frame.setVisible(true);
    panel.setLayout(new GridLayout(3, 1, 0, 19));
    panel.setVisible(true);
    JButton b = new JButton("Play");
    b.setSize(20, 10);
    b.setBackground(new Color(59, 89, 182));
    b.setForeground(Color.WHITE);
    b.setFocusPainted(false);
    b.setFont(new Font("Tahoma", Font.BOLD, 12));
    panel.add(b);

    JButton b0 = new JButton("Help");
    b0.setBackground(new Color(59, 89, 182));
    b0.setForeground(Color.WHITE);
    b0.setFocusPainted(false);
    b0.setFont(new Font("Tahoma", Font.BOLD, 12));
    b0.addActionListener(this);
    panel.add(b0);

    JButton b1 = new JButton("Quit");
    b1.setBackground(new Color(59, 89, 182));
    b1.setForeground(Color.WHITE);
    b1.setFocusPainted(false);
    b1.setFont(new Font("Tahoma", Font.BOLD, 12));
    b1.addActionListener(this);
    panel.add(b1);

    frame.getContentPane().add(panel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

现在我的问题是:

public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand().equals("Quit")) {
        frame.dispose();
    } else if (e.getActionCommand().equals("Help")) {
        JFrame j1 = new JFrame();
        j1.setSize(200, 200);
        j1.setVisible(true);
    } else if (e.getActionCommand().equals("Play")) {
        //panel.removeAll();
        //revalidate(); 
        //repaint();
        //frame.getContentPane().remove(panel);

    }
}

我想要它,所以当我点击“播放”按钮时,它会删除按钮以及“帮助”按钮和“退出”按钮。

我已经尝试了注释的代码,但没有成功。希望我已经说清楚了。重申一下,我想在点击播放后删除所有按钮(基本上是一个空白窗口)。

1 个答案:

答案 0 :(得分:-1)

如果将面板放入框架之前先将面板添加到框架中怎么样?请忽略这个作为答案。