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

时间:2011-11-28 09:24:46

标签: javafx-2

我需要在我的代码中手动设置插入位置。 <{1}}下有getCaretPosition(),但没有setter方法。

如何设置插入位置?

4 个答案:

答案 0 :(得分:33)

TextArea ta = new TextArea();
ta.setText("1234567890");
ta.positionCaret(4);

答案 1 :(得分:7)

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

Platform.runLater( new Runnable() {
    @Override
    public void run() {
        textArea.positionCaret( 0 );
    }
});

答案 2 :(得分:1)

TextInputControl中有两种方法可以操作插入位置。 这些是: -

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

  2. positionCaret(int pos) - 设置清除上一个选择的当前插入位置。

  3. 所以我认为在你的情况下你想使用positionCaret方法设置位置而不做任何选择。

答案 3 :(得分:0)

如果你想在你的 TextField 的末尾添加它,你可以做下一个

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

这将在末尾添加光标。