JavaFX:在 textArea 中设置文本后,在单独的线程中设置滚动到底部不起作用

JavaFX : After setting text in textArea, setting scroll to bottom in separate thread is not working

我创建了一个 JavaFX 应用程序,我在其中使用一个后台进程更新日志。所以我在 TextArea 中设置日志文本并使用 logs.setScrollTop(Double.MAX_VALUE) 设置滚动到底部。但滚动条设置为从底部向上一点。 我还尝试了 ScrollPan 中的 TextFlow 并使用 logDisplay.setVvalue(1.0) 设置滚动到底部。它也给出了相同的结果。

Platform.runLater(() -> {
    logs.setText([setting log text]);//TextArea logs
    logs.setScrollTop(Double.MAX_VALUE));
});

//For TextFlow inside ScrollPane
Platform.runLater(() -> {
    logs.setText([setting log text]);//Text logs
    logDisplay.setVvalue(1.0);
});

我也尝试过 运行 在单独的线程中编写代码,例如

new Thread() {
    public void run(){
        System.out.println("called set test");
        logs.setText([setting log text]);//Text logs
        logDisplay.setVvalue(1.0);
    }
}.start();

但没有任何效果:(
你能帮我看看这是怎么回事吗?
谢谢

--编辑--
看起来问题是因为线程问题。滚动条值正在更新为之前的文本值。实际上,在检索滚动值时,它不是在检索最新值,而是在获取较旧的值,因此滚动条设置为上一条消息的末尾,而不是实际的最后一行。

我不知道这个问题的实际问题,但我找到了替代解决方案。

我正在使用文本长度设置插入符号在文本末尾的位置。

logs.setText(logText);
logs.positionCaret(logText.length());

它对我有用。 :)