我想将外部文本或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
会调整为内容大小。