2012-05-17 47 views
1

進出口填充的JTextArea創建會從選定目錄的.java和.class文件的列表,並將它們放在一個JList的應用程序。我正在使用Netbeans 7.1.2。如何使用文件從JList的

我把所有的文件是在JList中顯示像我想,我不能似乎做的是在JTextArea中開開選定的java文件。

我需要從JList中的文件,將它傳遞到JTextArea中,但它不工作

 try 
    { 
     FileReader reader= new FileReader(jlist.getSelectedValue()); 
     BufferedReader br = new BufferedReader(reader); 
     textarea.read(br); 
     br.close(); 
     textarea.requestFocus();    
    } 
    catch(Exception e2) {} 

有誰看到我去錯了嗎?

+0

爲了更好地幫助越早,張貼[SSCCE(http://sscce.org/)。 –

回答

5

如果要將文件讀入JTextArea,則需要使用傳入BufferedFileReader而不是write(...)方法的read(...)方法。這應該對你有意義,因爲你的目標是閱讀而不是寫作。

+0

我編輯了我的代碼,是你說我必須做的嗎? – newSpringer

+4

是的,但不叫'textarea.setText(「」)'不然你會刪除你剛剛裝入'JTextArea'什麼:) –

+0

哈哈雅有道理好嗎:) – newSpringer

-1

只要你添加了一些一個JList - 可視組件 - 它不再對象的名單,因爲這樣的。你只需要一個索引爲0到n的數組,你可以從中選擇,但是沒有什麼是真正在其中的。你可以做的是製作一組文件(新文件[])並將所有文件存儲在那裏,以便隨時訪問它們。

0
textarea.write(bw); 

這是否編譯?寫入方法似乎意味着將textarea的內容寫入文件而不是其他方式。

此外,如果出現問題,請確保不要發現異常並忽略它。異常跟蹤對於瞭解發生了什麼問題非常有用。

0

如果您遇到問題,您應該顯示/記錄你的例外,而不是吞嚥他們靜靜地。你的代碼可能遇到一個與它有關的異常問題,但直到你編寫代碼告訴你有關異常時,你纔會知道。

你可以用這個啓動:

try 
{ 
    File file = (File)jlist.getSelectedValue(); 
    FileReader reader = new FileReader(file); 
    textarea.read(br); 
    br.close(); 
    textarea.requestFocus(); 
} 
catch(Exception e) 
{ 
    JOptionPane.showMessageDialog(null, e.toString()); 
} 
+0

我讓它在我的代碼中打印出一個異常,但是我沒有將它添加到這段代碼中,因爲我只是想表明它在try-catch中。錯誤是因爲讀者試圖讀取來自jlist的對象而不是文件...不這樣做爲什麼我添加了列表到jlist – newSpringer

+0

您是否看到打印的錯誤消息?錯誤消息的確切文本是什麼?你能複製並粘貼它嗎?嘗試將'getSelectedValue()'的返回值轉換爲'File'(我在我的答案中顯示了這個)。 –

+0

修復了我的其他錯誤,現在就得到了這個'java.io.FileNotFoundException:null(系統找不到文件指定)' – newSpringer