我正在創建一個小的擺動應用程序,它繪製了文件中給出的一組點。指南建議我爲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。
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