我有一個簡單的GUI,其中有兩個按鈕:Print
和Stop
。線程:如何中斷該線程外部的線程
當用戶按print
時,一個已保存的號碼是連續打印在循環。
當用戶按Stop
,時,打印停止。
我正在處理在單獨的線程中打印數字,因爲我需要線程在再次打印之前睡眠一毫秒。
printBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Thread a= new Thread(new Runnable(){
public void run(){
textArea.setText("");
for (int i=0; i<10; i++){
int result= 0;
System.out.println(result+"\n");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
a.start();
}
});
現在,在停止按鈕的ActionListener,我想第一個線程被中斷或停止。我該怎麼做,因爲它需要從另一個線程中斷?
從另一個線程,爲什麼? – PKlumpp
使用'Timer'或者更好的'ScheduledExectuorService'。在ScheduledFututre上調用Timer或cancel()來調用'cancel()'。除非你知道你在做什麼,並且有充足的理由,否則不要使用原始的'Thread'。 –
@ZOO因爲這個線程只包含了這個線程的run方法內的任何東西。這是一個完全不同的按鈕,具有不同的動作偵聽器。我可以在此線程內實現該按鈕的動作偵聽器嗎?我在這裏錯過了什麼嗎? – Solace