Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 选择文件并将文本读入GUI的按钮(JTextArea)_Java_User Interface_Actionlistener_Filechooser - Fatal编程技术网

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

Java 选择文件并将文本读入GUI的按钮(JTextArea),java,user-interface,actionlistener,filechooser,Java,User Interface,Actionlistener,Filechooser,我正在使用方法和类创建一个GUI,并尝试创建一个按钮,用户可以在其中选择它,然后选择一个文件。然后,文件将把存储在文件中的内容读入textarea/textfield/JLabel。有人能帮我编写代码吗?我不知道如何编写代码,所以我可以选择按钮选择一个文件,然后它将文本读入GUI public void addLoadFile(){ btnLoadFile = new JButton("Load file of Books"); btnLoadFile.setBo

我正在使用方法和类创建一个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("");
    }

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

将侦听器添加到按钮

 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);
            }
        }
    }
}

尝试在后台线程中运行,例如使用
SwingWorker
ExecutorService
,这样UI就不会挂起大文件。可能存在重复的