20

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

如何设置插入符号位置?

4

4 回答 4

36
TextArea ta = new TextArea();
ta.setText("1234567890");
ta.positionCaret(4);
于 2011-11-30T14:05:57.320 回答
8

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

Platform.runLater( new Runnable() {
    @Override
    public void run() {
        textArea.positionCaret( 0 );
    }
});
于 2015-06-22T10:57:45.083 回答
2

TextInputControl 中有两种方法允许操作插入符号的位置。这些都是 :-

  1. selectPositionCaret(int pos) - 选择最后一个插入符号位置到您输入的当前插入符号位置之间的文本。

  2. positionCaret(int pos) - 设置当前插入符号位置也清除先前的选择。

因此,我认为在您的情况下,您想使用 positionCaret 方法来设置位置而无需任何选择。

于 2016-09-08T05:33:34.830 回答
0

如果您想在 TextField 的末尾添加它,您可以执行下一个

TextFieldName.positionCaret(TextFieldName.getText().length());

这将在末尾添加 Curser。

于 2021-08-02T08:24:47.440 回答