使用时,Thread.sleep()
您正在主线程上执行此操作。这会将gui冻结5秒钟,然后更新outputField
。发生这种情况时,它将使用最后设置的文本,该文本为空白。
使用Swing计时器要好得多,下面的示例可以完成您要完成的任务:
if (match) {
// Another class calculates
} else {
outputField.setText("INPUT ERROR");
ActionListener listener = new ActionListener(){
public void actionPerformed(ActionEvent event){
outputField.setText("");
}
};
Timer timer = new Timer(5000, listener);
timer.setRepeats(false);
timer.start();
}