2011-03-19 58 views
3

我在NetBeans 6.9.1中做了一個Summarizer項目,因爲我有一個「瀏覽」按鈕,它應該打開一個打開的對話框JFileChooser中。我看了一下這裏: very similar question on stackoverflowjFileChooser.showOpenDialog()凍結應用程序..沒有錯誤/異常..嘗試了幾件事

我的問題是一樣的,我試圖設置當前目錄,這是在另一個類似的問題上在stackoverflow嘗試,但即使這不起作用在我的電腦上。

我還不能確定什麼是我的錯誤。我認爲這些東西沒有在EDT上運行是一樣的錯誤。我使用netbeans,代碼很大。我無法找到在哪裏改變美國東部時間的事情。所以我只會發布相關部分。請看看並告訴我我需要做些什麼來解決我的問題?

private void cmdBrowseActionPerformed(java.awt.event.ActionEvent evt) {           


     jFileChooser1.setCurrentDirectory(new File("F:/BE-Project/Summarizer")); 
     jFileChooser1.setDialogTitle("Open File"); 
     jFileChooser1.setFileSelectionMode(JFileChooser.FILES_ONLY); 
     int returnVal = jFileChooser1.showOpenDialog(Summarizer.this); 
     if (returnVal== JFileChooser.APPROVE_OPTION) { 
      try { 

       fin = jFileChooser1.getSelectedFile(); 
       fileContents = Files.readFromFile(fin,"ISO-8859-1"); 
       tAreafileContents.setText(fileContents); 
       txtInputFile.setText(fin.getAbsolutePath() + " -- " + fin.getName()); 
       tAreafileContents.setCaretPosition(tAreafileContents.getDocument().getLength()); 
      } 
      catch (Exception e) { 
       System.out.println(e); 
      } 

     } 

     else System.out.println("there is some error"); 
    }       

/* netbeans generated code */ 
public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new Summarizer().setVisible(true); 
      } 
     }); 
    }    

請告訴我,如果需要其他部分代碼,請幫助。我現在正在撓頭。

+3

「請告訴我是否需要其他代碼部分..」爲了更快地獲得更好的幫助,請發佈SSCCE(http://pscode.org/sscce.html)。一個SSCCE可能會告訴我和其他人在什麼*安全環境*這個代碼被調用。請注意,如果存在安全沙箱,則「else」將永遠不會到達。 – 2011-03-19 07:35:41

+0

@andrew感謝至少照顧回覆..我會要求你不要添加到我的併發症......我已經在修復因爲jfilechoser凍結我的應用程序...你只增加更多的複雜性我提到的東西像SSCCE ..我現在不需要東西 – 2011-03-20 15:30:40

+0

@andrew關於我的申請,你需要什麼其他信息?它只是netbeans中的一個簡單的按鈕..購買「代碼的其他部分」我的意思是任何部分的大型netbeans自動生成的代碼,你可能需要嘗試解決我的問題..我認爲我的問題似乎是jfilechooser需要太長時間無法訪問文件系統..這就是爲什麼它凍結我的應用程序..但我似乎無法弄清楚爲什麼它需要這麼長時間,它凍結我的應用程序..真正的問題 – 2011-03-20 15:33:59

回答

0

您確定只是JFileChooser問題嗎? 您的F:設備是硬盤,網絡共享,USB驅動器嗎?如果不是,您可以嘗試將設備更改爲硬盤驅動器嗎? 的NetBeans中和命令行上運行這些測試,F上讀取文件:和其他一些單位不同至F

import java.io.*; 

public class FileSize 
{ 
    public static void main(String [] args) 
    { 
     //String fileName = "F:/BE-Project/Summarizer/someFile.txt"); 
     String fileName = "FileSize.java"; 
     long size = new File(fileName).length(); 
     System.out.println("size: " + size); 
    } 

} 
+0

感謝awi回覆...這是我最後一年的項目..我已經停止工作了2個月以前..我沒有使用jFileChooser,因爲它沒有工作..雖然我不記得我用了什麼(我還沒有碰過它因爲超過2個月)..但仍然感謝回覆..我會肯定嘗試下一次把我的手放回去.. - – 2011-07-20 07:11:57

1

我建議你的問題是從美國東部時間磁盤讀取File

//this should be in a worker thread 
fileContents = Files.readFromFile(fin,"ISO-8859-1"); 

//this then gets dumped back on the EDT 
tAreafileContents.setText(fileContents); 
txtInputFile.setText(fin.getAbsolutePath() + " -- " + fin.getName()); 
tAreafileContents.setCaretPosition(tAreafileContents.getDocument().getLength()); 
+0

謝謝akf回覆...這是我最後一年engg項目..我已經停止了2個月以前的工作..我沒有使用jFileChooser,因爲它沒有工作..雖然我不記得是什麼我用過(我從2個多月以來沒有碰過它)..但是仍然謝謝你的回覆..我一定會在下一次把它放回去試試它.. – 2011-07-20 07:11:30

+0

我有同樣的問題,它是EDT,謝謝akf – elect 2014-08-18 20:48:46