Установите положение каретки в javafx.scene.control.TextArea и javafx.scene.control.TextField

Мне нужно установить положение каретки вручную в моем коде. В javafx.scene.control.TextInputControl есть getCaretPosition(), но нет метода setter.

Как установить положение каретки?

Ответы

Ответ 1

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

Ответ 2

Вы можете использовать функцию positionCaret, как упоминалось ранее. Но не забудьте обернуть его в Platform.runLater. В противном случае это может не работать вообще.

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

Ответ 3

В TextInputControl есть два метода, которые позволяют манипулировать кареткой. Это: -

  • selectPositionCaret (int pos) - выбор текста между последней позицией каретки до текущей позиции каретки, которую вы ввели.

  • positionCaret (int pos) - Устанавливает текущую позицию каретки, очищая предыдущий выбор.

Итак, я думаю, что в вашем случае вы хотите использовать метод positionCaret для установки позиции без каких-либо выборов.