我正在尝试创建一个更改背景颜色的按钮,然后在设定的时间后将其从JFrame中移除,但不是改变颜色,而是在等待期间保持按下状态。
public void actionPerformed(ActionEvent e) {
setBackground(Color.red);
try{
Thread.sleep(10000);
}
catch (InterruptedException iE) {
}
frame.remove(this);
}
谁能看到我做错了什么?
答案 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();