Установите позицию каретки в javafx.scene.control.TextArea и javafx.scene.control.TextField - PullRequest
16 голосов
/ 28 ноября 2011

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

Как мне установить позицию каретки?

Ответы [ 3 ]

33 голосов
/ 30 ноября 2011
TextArea ta = new TextArea();
ta.setText("1234567890");
ta.positionCaret(4);
7 голосов
/ 22 июня 2015

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

Platform.runLater( new Runnable() {
    @Override
    public void run() {
        textArea.positionCaret( 0 );
    }
});
1 голос
/ 08 сентября 2016

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

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

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

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

...