JavaFX 显示文本区域追加 - 有什么方法可以 highlight/make 使新文本更明显?
JavaFX display text area appending - any way to highlight/make new text more visible?
我的 JavaFX 应用程序中有一个显示文本区域。
它有几种附加字符串的方法。
我想要的是任何新添加的文本都有某种反馈,以便用户更直观地了解正在显示的新文本。
理想情况下,我想要以下之一,但我非常愿意接受其他建议:
- 附加文本是 'typed out',就好像有人在显示文本区域本身中输入它一样。或者..
- 新文本出现时的某种突出显示。
尽管如此,我愿意接受建议!
谢谢。
按照 Highlighting Strings in JavaFX TextArea 中的建议,您可以 select 新文本。
假设文本区域不可编辑,并且您只是在现有文本的末尾追加,您可以这样做:
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());
也许可以尝试使用 RichTextArea (https://github.com/TomasMikula/RichTextFX),然后以不同的方式显示文本的可能性有很多。
我的 JavaFX 应用程序中有一个显示文本区域。
它有几种附加字符串的方法。
我想要的是任何新添加的文本都有某种反馈,以便用户更直观地了解正在显示的新文本。
理想情况下,我想要以下之一,但我非常愿意接受其他建议:
- 附加文本是 'typed out',就好像有人在显示文本区域本身中输入它一样。或者..
- 新文本出现时的某种突出显示。
尽管如此,我愿意接受建议!
谢谢。
按照 Highlighting Strings in JavaFX TextArea 中的建议,您可以 select 新文本。
假设文本区域不可编辑,并且您只是在现有文本的末尾追加,您可以这样做:
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());
也许可以尝试使用 RichTextArea (https://github.com/TomasMikula/RichTextFX),然后以不同的方式显示文本的可能性有很多。