如何使用JList中的文件填充JTextArea

时间:2012-05-17 14:50:33

标签: java swing file-io textarea jlist

我创建了一个应用程序,它从所选目录中获取.java和.class文件的列表,并将它们放在JList中。我正在使用Netbeans 7.1.2。

我想要在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) {}

有人看到我出错的地方吗?

4 个答案:

答案 0 :(得分:5)

如果要将文件读入JTextArea,则需要使用传入BufferedFileReader而不是read(...)方法的write(...)方法。这应该对你有意义,因为你的目标是阅读,而不是写。

答案 1 :(得分:0)

textarea.write( bw );

这会编译吗? write方法似乎意味着将textarea的内容写入文件而不是相反。

如果出现问题,请确保不要捕获异常并忽略它。异常跟踪可以非常有助于理解出错的地方。

答案 2 :(得分: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());
}

答案 3 :(得分:-1)

只要向JList添加内容 - 可视组件 - 它就不再是对象列表。你只需要一个索引为0到n的数组,你可以选择它,但没有任何东西真的在它们中。您可以做的是创建一个文件数组(新文件[])并将所有文件存储在那里,以便您可以随时访问它们。