Ответ 1
TextArea ta = new TextArea();
ta.setText("1234567890");
ta.positionCaret(4);
Мне нужно установить положение каретки вручную в моем коде.
В javafx.scene.control.TextInputControl
есть getCaretPosition()
, но нет метода setter.
Как установить положение каретки?
TextArea ta = new TextArea();
ta.setText("1234567890");
ta.positionCaret(4);
Вы можете использовать функцию positionCaret, как упоминалось ранее. Но не забудьте обернуть его в Platform.runLater. В противном случае это может не работать вообще.
Platform.runLater( new Runnable() {
@Override
public void run() {
textArea.positionCaret( 0 );
}
});
В TextInputControl есть два метода, которые позволяют манипулировать кареткой. Это: -
selectPositionCaret (int pos) - выбор текста между последней позицией каретки до текущей позиции каретки, которую вы ввели.
positionCaret (int pos) - Устанавливает текущую позицию каретки, очищая предыдущий выбор.
Итак, я думаю, что в вашем случае вы хотите использовать метод positionCaret для установки позиции без каких-либо выборов.