在删除按钮之前更改颜色

时间:2010-07-09 10:25:04

标签: java

我正在尝试创建一个更改背景颜色的按钮,然后在设定的时间后将其从JFrame中移除,但不是改变颜色,而是在等待期间保持按下状态。

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

    }
    frame.remove(this);
}

谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:2)

您的睡眠发生在主UI线程中,因此按钮只是保持按下的原因。如果你想要一个睡眠,你应该创建一个新的线程,让它睡觉,然后从该线程中你可以得到框架删除按钮。

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

    };
}.start();