簡體   English   中英

如何使帶有匿名內部類actionlistener的JButton在單擊時自行刪除?

[英]How do I make a JButton with an anonymous innerclass actionlistener remove itself on click?

您好,感謝您提前閱讀,這是我的問題:

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 :非常感謝大家,我已經在你們的幫助下解決了問題:)

如果要刪除按鈕:

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

如果要從按鈕中刪除動作偵聽器:

public void actionPerformed(ActionEvent actionevent)
{
  button.removeActionListener(this);
}

如果您在“處置”之后不需要它,請隨時將其從父項中刪除。

button.getParent().remove(button);

否則,請遵循HoverCraftFullOfEel的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM