按钮选择文件并将文本读入GUI(JTextArea)

时间:2016-08-09 13:21:09

标签: java user-interface actionlistener filechooser

我正在使用方法和类创建GUI,并且我正在尝试创建一个按钮,用户可以在其中选择它然后选择一个文件。然后,该文件将读入文件中存储的内容到textarea / textfield / JLabel中。任何人都可以帮助我使用我的代码,我不知道如何编码它所以我可以选择按钮来选择文件,然后将文本读入GUI。

public void addLoadFile(){
        btnLoadFile = new JButton("Load file of Books");
        btnLoadFile.setBounds(415, 30, 150, 20);
        btnLoadFile.addActionListener(this);
        panelLoadFile.add(btnLoadFile); 

        textArea = new JTextArea();


    }

    class this implements ActionListener {
        @Override
        JFileChooser fileChooser = new JFileChooser();
        int ret = fileChooser.showOpenDialog(this);
        if(ret== JFileChooser.APPROVE_OPTION)
        {
            File f= fileChooser.getSelectedFile();
            try
            {
                FileReader r=new FileReader(f);
                area.read(4,"");
            }
            catch (Exception ee)
        }
    System.out.prinkln("");
    }

1 个答案:

答案 0 :(得分:1)

以下代码段可能有所帮助:

向按钮添加监听器

 jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

执行行动的代码

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    JFileChooser fileChooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
            "Text Files(*.txt)", "txt");
    fileChooser.setFileFilter(filter);
    fileChooser.setCurrentDirectory(new File(System
            .getProperty("user.home")));
    int result = fileChooser.showOpenDialog(this);
    if (result == JFileChooser.APPROVE_OPTION) {
        File selectedFile = fileChooser.getSelectedFile();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(selectedFile));
            StringBuilder sb = new StringBuilder();
            String line = br.readLine();

            while (line != null) {
                sb.append(line);
                sb.append(System.lineSeparator());
                line = br.readLine();
            }
            String all = sb.toString();
            jTextArea1.setText(all);
        }catch(Exception e){
            e.printStackTrace();
        }finally {
            try {
                br.close();
            } catch (IOException ex) {
                Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}