2012-11-25 76 views
0

我有一個「無效延伸線程」的對象。線程不工作

我做了2個按鈕:A用於線程對象a和B線程用於對象b。問題是線程工作正常,當我只按A或B但它不起作用時,我按B後按下。我無法解決它。請告訴我如何解決它。代碼喜歡這個。

buttonA.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent arg0){ 
     thread(object a).run(); 
} 
buttonB.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent arg0){ 
     thread(object b).run(); 
} 
+7

1)那不是真正的代碼,即對象a和對象b的東西不會編譯,2)我不確定基於迄今爲止提供的有限信息,我們如何猜測是什麼錯誤。我認爲你需要告訴更多,展示更多的代碼,最好是[sscce](http://sscce.org)讓我們開始接近理解這個問題。如果不理解,就不可能有解決辦法。誰知道a和b做什麼?主只知道「不起作用」意味着什麼。我們聰明而有才華,但不幸的是,不介意讀者,也無法開始猜測未顯示的代碼。 –

+4

基於他的描述,我會假設他新產生的線程實際上並未作爲線程運行,並且阻止了他的UI線程。但是,是的,更多的上下文會有幫助。 –

+1

正如一些額外的信息,除非增加功能,否則擴展Thread類並不是很好的做法。 [相當實施'Runnable'](http://www.go4expert.com/forums/showthread.php?t=4202) –

回答

8

啊,你打電話run()的主題不start()。這將不允許線程在後臺線程上調用其代碼,而是在Swing事件線程上調用它。請致電start()。如果這沒有幫助,那麼請提出一個更好的問題。

+1

+1對於'我們聰明而有才華',在評論中。 –

+1

+1對於「不介意的讀者」錯誤 –

+0

Alex Lynch第一次看到這個。我已經爲此投了幾個他最近的好答案。 –