小编典典

如何使带有匿名内部类actionlistener的JButton在单击时自行删除?

java

您好,感谢您提前阅读,这是我的问题:

final JButton button = new JButton();

        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent actionevent)
            {
                button.setVisible(false);
                button.validate();
                button.invalidate();
                button.revalidate();
                button.repaint();
            }
        });

我已经尝试过所有这些操作,只是使该按钮消失了,我也禁用了它,但是我需要它只是消失,而不是淡出或其他东西。背景是variabel,所以我无法制作它,因此它和它具有相同的颜色,并假装它不存在。有谁有任何线索可以使它消失吗?

编辑 :我已经尝试了所有答案,非常感谢您,但是按钮仍然存在:(

EDIT2 :我想因为我的计时器而不断添加按钮,我犯了一个很大的错误,感谢所有帮助,这仍然非常有用!

EDIT3 :非常感谢大家,我已经在你们的帮助下解决了问题:)


阅读 292

收藏
2020-11-30

共1个答案

小编典典

如果要删除按钮:

Container parent = button.getParent();
parent.remove(button);
((JComponent) parent).revalidate();
parent.repaint();

如果要从按钮中删除动作监听器:

public void actionPerformed(ActionEvent actionevent)
{
  button.removeActionListener(this);
}
2020-11-30