2011-08-11 79 views

回答

7

应该像下面的代码:

JFileChooser chooser = new JFileChooser(); 
int returnVal = chooser.showOpenDialog(null); //replace null with your swing container 
File file; 
if(returnVal == JFileChooser.APPROVE_OPTION)  
    file = chooser.getSelectedFile();  
} 

JTextArea text = new JTextArea(); 
BufferedReader in = new BufferedReader(new FileReader(file)); 
String line = in.readLine(); 
while(line != null){ 
    text.append(line + "\n"); 
    line = in.readLine(); 
} 

卢卡

+1

-1,是的,我知道这个作品。但我倾向于投票解决方案,重新发明轮子。所有文本组件都支持应该使用的read(...)方法。 – camickr

+1

@camickr我同意我们不应该重新发明轮子......无论如何我没有找到你的建议,我不明白为什么你只投了矿,当有其他两个答案时提出了同样的方法没有张贴代码。 – Maverik

+2

我的建议是使用read(..)方法。我把它投下来是因为这是被接受的答案,我不希望搜索论坛的人找到这个答案来使用它。 – camickr

2

要将文件的内容导入JTextArea,只需执行以下步骤即可!

  1. 创建一个框架并为其添加一个JTextArea。
  2. 您声明并初始化JFileChooser。
  3. 您将侦听器添加到JFileChooser。
  4. 在你的actionPerformed中,你应该选择被选中的文件,并将它传递给一个可以读取这个文件的方法(参见下面的注释)。
  5. 在该方法中,您将打开一个文件读取器并逐行读取该文件的内容。在你这样做的时候,你将每行添加到JTextArea。
  6. 当您到达文件末尾时,关闭文件阅读器。
  7. 运行程序,你应该很好去。

以上步骤足以完成您的任务。然而,当你试试看,我会编辑我的帖子并添加一个可能的解决方案。

注意:您必须注意,当您使用JFileChooser选择文件时,它将返回File类型的对象。然后,您应该使用File类提供的getName()方法来获取文件的名称。

可能有帮助的链接!
JFileChooser
File
Java tutorials on how to use the JFileChooser

3

Document Viewer

import java.awt.BorderLayout; 
import java.awt.event.*; 
import javax.swing.*; 
import java.io.File; 

class DocumentViewer { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       final JFrame f = new JFrame("Document Viewer"); 
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

       final JFileChooser fileChooser = new JFileChooser(); 

       JPanel gui = new JPanel(new BorderLayout()); 

       final JEditorPane document = new JEditorPane(); 
       gui.add(new JScrollPane(document), BorderLayout.CENTER); 

       JButton open = new JButton("Open"); 
       open.addActionListener(new ActionListener() { 
        public void actionPerformed(ActionEvent ae) { 
         int result = fileChooser.showOpenDialog(f); 
         if (result==JFileChooser.APPROVE_OPTION) { 
          File file = fileChooser.getSelectedFile(); 
          try { 
           document.setPage(file.toURI().toURL()); 
          } catch(Exception e) { 
           e.printStackTrace(); 
          } 
         } 
        } 
       }); 
       gui.add(open, BorderLayout.NORTH); 

       f.setContentPane(gui); 
       f.pack(); 
       f.setSize(400,300); 
       f.setLocationByPlatform(true); 

       f.setVisible(true); 
      } 
     }); 
    } 
} 
0
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    JFileChooser jf = new JFileChooser(); 
    final JEditorPane document = new JEditorPane(); 
    int returnval=jf.showDialog(this, null); 
    File file = null; 
    if(returnval == JFileChooser.APPROVE_OPTION)  
    file = jf.getSelectedFile(); 
    String str ; 
    try { 
     byte bt[]= Files.readAllBytes(file.toPath()); 
     str=new String(bt,"UTF-8"); 
     System.out.println(str); 
    } catch (IOException ex) { 
     Logger.getLogger(test.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
相关问题