【问题标题】:JavaFX load text with more lines in to javafx containerJavaFX将具有更多行的文本加载到javafx容器中
【发布时间】:2014-04-19 10:45:43
【问题描述】:

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

我是第三排”

我实际使用(对于文本文件)普通的 BufferedReader-Code: 可能的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 容器中的文本呢?

【问题讨论】:

    标签: file javafx containers


    【解决方案1】:

    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 会打破太宽的行,但如果内容对于容器来说太高,则会添加一个 ScrollBar(通常不会垂直调整大小)。

    您也可以使用javafx.scene.text.TextText 默认调整为内容大小。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2017-06-16
    • 2014-08-22
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    相关资源
    最近更新 更多