在javafx.scene.control.TextArea和javafx.scene.control.TextField中设置插入符位置

Anu*_*dha 18 javafx-2

我需要在我的代码中手动设置插入位置.有一个getCaretPosition()javafx.scene.control.TextInputControl但没有setter方法.

如何设置插入位置?

Ser*_*nev 34

TextArea ta = new TextArea();
ta.setText("1234567890");
ta.positionCaret(4);
Run Code Online (Sandbox Code Playgroud)

  • positionCaret()...这个方法的名称令人困惑. (14认同)
  • 是的,smth就像`setCaretPosition`会很方便 (3认同)
  • 也适用于TextField (3认同)

小智 8

您可以使用前面提到的positionCaret函数.但请确保将其包装在Platform.runLater中.否则它可能根本不起作用.

Platform.runLater( new Runnable() {
    @Override
    public void run() {
        textArea.positionCaret( 0 );
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 仅当从主UI线程以外的其他线程运行时. (4认同)