File JavaFX将包含更多行的文本加载到JavaFX容器中

File JavaFX将包含更多行的文本加载到JavaFX容器中,file,javafx,containers,File,Javafx,Containers,我想将外部文本或xml文件中的文本加载到javafx容器中。 我不知道应该使用哪个容器(文本区域,不可编辑或标签)。 问题,该文件有多行要读取。 例如: File.txt包含: “你好 我是第三排“ 我实际使用(对于文本文件)正常的BufferedReader代码: 可能1: String text; while ((text = bufferedReader.readLine()) != null) { textlabel_about.setText(text); } 或 可能的2:

我想将外部文本或xml文件中的文本加载到javafx容器中。 我不知道应该使用哪个容器(文本区域,不可编辑或标签)。 问题,该文件有多行要读取。 例如: File.txt包含: “你好

我是第三排“

我实际使用(对于文本文件)正常的BufferedReader代码: 可能1:

String text;
while ((text = bufferedReader.readLine()) != null) {
   textlabel_about.setText(text);
}
或 可能的2:

textlabel_about.setText(ReadTextfile(file){
StringBuilder stringBuffer = new StringBuilder();
String text;
while ((text = bufferedReader.readLine()) != null) {
      stringBuffer.append(text);
}
return stringBuffer.toString();
);
(是的,我剪切了函数-当然我使用了异常等等) 但如果我运行程序,我只能看到: 可能1:“我是第三排” 可能2:“你好,我是第三排”


我只知道在使用带有system.out.println的控制台获取不同行时的函数。那么,如何才能以正确的格式显示javafx容器中的文本呢?

BufferedReader.readLine
删除换行符。只需重新添加换行符并使用
TextArea

StringBuilder stringBuilder = new StringBuilder();
String text;
while ((text = bufferedReader.readLine()) != null) {
    stringBuilder.append(text).append("\n");
}
// set the text in the TextArea
your_text_area.setText(stringBuilder.toString());
TextArea
会打断太宽的行,但如果内容对于容器来说太高,则会添加一个滚动条(不会垂直调整大小)


或者,您可以使用
javafx.scene.text.text
<代码>文本默认调整为内容大小。

但如何更改阅读代码?utf-8是否默认?在使用像ä、ö、ü、ß等特殊符号时遇到问题on@malex,默认字符集是默认的系统字符集。尝试