Runnable r = new Runnable() {
public void run() {
try{
Thread.sleep(2000);
action = input.getText();
action = erase(action);
input.setText(action);
}
catch(InterruptedException e){
System.out.println("Thread Interrupted" + e);
}
}
};
if(e.getSource() == call){
if(!calling){
String temp = input.getText();
action = called(temp);
input.setText(temp + "\n" + action);
System.out.println(""+e.getActionCommand());
calling = true;
} else{
calling = false;//executes
String temp = input.getText();//does not execute until AFTER r.run();
input.setText(temp + "\n" + "Hanging Up...");//does not execute until AFTER r.run();
r.run();
}
我无法在Thread.sleep(2000)发生之前在GUI textArea(输入)上显示此代码。
我需要textArea显示“挂起”然后执行GUI锁定/睡眠2秒
答案 0 :(得分:0)
您不应直接调用run
方法,因为它不是以单独的线程执行的。
要开始一个主题,请使用Thread.start(r)
,其中r
是您的Runnable
。
您可以试一试,但这可能不起作用,因为Swing需要特殊的并发管理。 看看http://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html