Изменение цвета перед удалением кнопки - PullRequest
1 голос
/ 09 июля 2010

Я пытаюсь создать кнопку, которая меняет цвет фона, а затем удаляет себя из JFrame через заданный промежуток времени, но вместо изменения цвета она просто остается нажатой на время ожидания.

public void actionPerformed(ActionEvent e) {
    setBackground(Color.red);
    try{ 
        Thread.sleep(10000);
    }
    catch (InterruptedException iE) {

    }
    frame.remove(this);
}

Кто-нибудь может увидеть, что я делаю не так?

1 Ответ

2 голосов
/ 09 июля 2010

Ваш сон происходит в основном потоке пользовательского интерфейса, поэтому причина, по которой кнопка просто остается нажатой. Если вам нужен сон, вы должны создать новый поток, перевести его в режим сна, а затем внутри этого потока вы можете получить кадр для удаления кнопки.

new Thread() {
    public void run() {
        try {
            Thread.sleep(10000);
            // Now do what is needed to remove the button.
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    };
}.start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...