2012-02-08 87 views
0

我在執行過程中試圖停止進程時遇到問題。 我的過程由一個csv解析器組成。我的意圖是創建一個啓動按鈕,將運行csv分析器,並停止按鈕來停止csv分析器。我使用了一個函數system.exit(),整個程序關閉。我想要做的只是中斷csv功能。當我使用thread.sleep()時,停止按鈕掛在那裏,無法按下開始按鈕。非常感謝!java swing stop function

private void stopActionPerformed(java.awt.event.ActionEvent evt) {           
st = 0; 
if (st = 0) 
{ } 



}           

private void startActionPerformed(java.awt.event.ActionEvent evt) {          
st =1; 
if (st = 1){ 
Start1 test = new Start1(); 
test.sbutton();} 

回答

2

使用了Thread.sleep(時間) 但要記住在一個單獨的線程中運行您的CSV解析器。如果你只有一個線程,那麼你的整個應用程序就會掛起。 例如:每個給出的信息

class ParserStarter implements Runnable{ 
    void someMethodWhereYouStartParser(){ 
     Thread t=new Thread(this); 
     t.start(); 
    } 
    public void run(){ 
     CSVParser cp=new CSVParser(); 
    } 
} 
class CSVParser{ 
    //here you can write your start/stop logic using Thread.sleep(); 
} 
1

由於嘗試這種方式,

  1. 創建一個新的線程。
  2. 執行csv分析器或任何從新線程。
  3. 當你想停止這個,破壞線程。

如果這沒有幫助你,張貼有SSCCE.

一個改寫問題