JavaFX显示文本区域附加 - 任何突出显示/使新文本更明显的方法?

时间:2017-03-27 13:44:30

标签: java javafx user-experience

我的JavaFX应用程序中有一个显示文本区域。

它有几种方法可以附加字符串。

我想要的是任何新添加的文本都有某种反馈,以便用户更直观地了解正在显示的新文本。

理想情况下,我想要的是以下其中一项,但我对其他建议非常开放:

  • 附加文本是“输出”,好像有人在显示文本区域中键入它一样。或..
  • 出现新文本的某种突出显示。

虽然我再次接受建议!

谢谢。

2 个答案:

答案 0 :(得分:1)

根据Highlighting Strings in JavaFX TextArea的建议,您可以选择新文字。

假设文本区域不可编辑,并且您只是追加到现有文本的末尾,则可以执行以下操作:

textArea.textProperty().addListener((obs, oldText, newText) -> {
    if (newText.length() > oldText.length()) {
        Platform.runLater(() ->
            textArea.selectRange(oldText.length(), newText.length()));
    }
});

如果您的文本区域是可编辑的,或者您正在更普遍地使用它,则每次附加文本时都可以执行类似的操作。例如:

String message = ... ;
textArea.positionCaret(textArea.getLength());
textArea.appendText(message);
textArea.extendSelection(textArea.getLength());

答案 1 :(得分:0)

也许尝试使用RichTextArea(https://github.com/TomasMikula/RichTextFX),然后有很多可能以不同的方式显示您的文字。