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



我想将外部文本或xml文件中的文本加载到javafx容器中。我不知道我应该使用哪个容器(textarea,带有不可编辑或标签)。问题,该文件有多行要读取。例如: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。默认情况下,Text会调整为内容大小。

相关内容

  • 没有找到相关文章

最新更新