【问题标题】:Remove button after it has been clicked?单击后删除按钮?
【发布时间】:2015-07-06 15:33:36
【问题描述】:

如何让我的程序运行,以便在单击按钮时将其删除?

代码如下:

//Mainmenu
JFrame frame1 = new JFrame();
Container pane = frame1.getContentPane();

JButton a = new JButton(new ImageIcon("path2img"));
BufferedImage a1 = ImageIO.read(new File("path2img"));

 public Menu() throws IOException {
     frame1.setSize(300, 450);
    frame1.setLocationRelativeTo(null);
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame1.setResizable(false);
    frame1.setVisible(true);
    pane.add(a);
    a.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent aa) {
            pane.remove(a);

        }


    });
            }

谢谢

【问题讨论】:

  • 在动作监听器中将可见性设置为 false 是一个选项吗?
  • 你试图隐藏它吗?
  • (JButton)aa.getSource()).dispose() 呢?

标签: java jframe jbutton action


【解决方案1】:

任何时候你添加或删除一个组件到屏幕上已经显示的东西,你必须调用(re)validate(); repaint();

【讨论】:

    【解决方案2】:

    如果您只想隐藏它并使其不可见。您可以将其可见属性设置为 false。

    public void actionPerformed(ActionEvent e) {
        a.setVisible(false);
    }
    

    或者,在您移除按钮后重新绘制按住按钮的面板(如果您真的想丢弃该按钮。)

    public void actionPerformed(ActionEvent e) {
        pane.remove(a);
        pane.repaint();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 2016-01-04
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多