2013-02-22 84 views
2

我正在創建一個小的擺動應用程序,它繪製了文件中給出的一組點。指南建議我爲GUI調用一個新的線程,爲此我使用了下面的代碼。擺動線程通信

java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new View().setVisible(true); 
     } 
    }); 

應用程序中的場景之一是打開一個文件(使用JFileChooser完成)。

private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) { 
    int returnVal = fileChooser.showOpenDialog(this); 
    if (returnVal == JFileChooser.APPROVE_OPTION) { 
     File file = fileChooser.getSelectedFile(); 
     //some heavy operations 
    } else { 
     System.out.println("File access cancelled by user."); 
    } 
} 

在繼續繪製點之前,需要完成一些繁重的操作。

我的問題是,是否建議在GUI線程中放置重碼?是否可以將文件對象發送到主線程進行處理並將結果發送到GUI線程?

請注意,我不知道Java線程API。

回答

4
+0

http://www.theeggeadventure.com/wikimedia/index.php/SwingWorker_Example http://weblogs.java.net/blog/mkarg/archive/2010/01/03/did-you- know-swingworker-can-send-progress-status這兩個鏈接是有幫助的。 – addy 2013-02-22 15:19:01