JTextPane 从文本文件读取

JTextPane read from text file

我有一个包含 3 行的 .txt 文件

我的 GUI 代码是

txtpnEmergencyAmbulanceAnd = new JTextPane();
     try {
            // FileReader reads text files in the default encoding.
            FileReader fileReader = new FileReader(fileNumbers);

            // Always wrap FileReader in BufferedReader.
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            while((lineNumbers = bufferedReader.readLine()) != null) {
    txtpnEmergencyAmbulanceAnd.setText(lineNumbers);
        }
            // Always close files.
            bufferedReader.close();            
        }

     catch(FileNotFoundException ex) {
            System.out.println(
                "Unable to open file '" + 
                fileNumbers + "'");                
        }
     catch(IOException ex) {
            System.out.println(
                "Error reading file '" 
                + fileNumbers + "'");      
     }

然而,打印到我的 GUI 中的只是最后一行。我正在尝试打印出所有三行 我也将其作为全局

String fileNumbers = "numbers.txt";

String lineNumbers = "";

setText 确实如此,将组件文本设置为您传递给它的值,丢弃它之前拥有的任何内容。

改为尝试使用 JTextPane#read(Reader, Object)

仅供参考:您可能需要仔细查看 The try-with-resources Statement 以便更好地管理您的资源

是的,因为您在每个 运行 上覆盖了 JTextPane 的内容。

快速而肮脏的解决方案:

txtpnEmergencyAmbulanceAnd.setText(txtpnEmergencyAmbulanceAnd.getText() + lineNumbers);