Scroll 如何在setText之后滚动JavaFXTextArea

Scroll 如何在setText之后滚动JavaFXTextArea,scroll,textarea,javafx,listener,Scroll,Textarea,Javafx,Listener,我正在使用JavaFX,我想在设置完textarea的文本后,从顶部将textarea滚动到某个位置 我尝试先在我的文本区域上设置一个侦听器,并在其中使用setText: textArea.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(final ObservableValue<? extends String

我正在使用JavaFX,我想在设置完textarea的文本后,从顶部将textarea滚动到某个位置

我尝试先在我的文本区域上设置一个侦听器,并在其中使用
setText

    textArea.textProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(final ObservableValue<? extends String> observable, final String oldValue, final String newValue) {
        textArea.setScrollTop(<Here I use the scroll position that I want>);
    }
});
textArea.textProperty().addListener(新的ChangeListener()){
@凌驾

公共无效已更改(最终可观察值如果使用此代码会发生什么

textarea.addEventHandler(KeyEvent.KEY_TYPED, new EventHandler<KeyEvent>() {
        @Override
        public void handle(KeyEvent t) {
        //textArea.setScrollTop(<Here I use the scroll position that I want>);
         }
       }
textarea.addEventHandler(KeyEvent.KEY_类型,new EventHandler()){
@凌驾
公共无效句柄(KeyEvent t){
//textArea.setScrollTop();
}
}

您应该将侦听器的代码放在一个单独的线程中进行睡眠,然后使用Platform.runLater调用textArea.setScrollTop,这样睡眠不会阻止平台线程。如果您不这样做,则平台线程会被睡眠阻止,并且textArea上的任何挂起操作也会被阻止,如果挂起的操作正在阻止滚动,滚动将无法完成,您的呼叫将无效。

如果您使用包装滚动呼叫,是否有效?