Найти в тексте позицию курсора в компоненту jtextfield

есть ли метод для возврата позиции символа в JTextField. Я имею в виду, если у меня есть JTextField с некоторыми ценностями. Например, поле содержит значение ABCDEFJ. Пользователь решает поместить курсор сразу после символ " C " для ввода нового значения. Есть ли способ получить позиция, где он входит в нового персонажа. В этом примере, это вернет 3.

3 ответов


JTextField.getCaretPosition()

JTextField.setCaretPosition(int pos)


попробуйте использовать CaretListener интерфейс:

public class A extends JFrame implements CaretListener
{
  //Assume you have a text field.
  public A()
  {
    JTextField field = new JTextField("bla bla");
    field.addCaretListener(this);
    .....
  }

  public void caretUpdate(CaretEvent e)
  {          
    int index = e.getDot();
    .....
  }
}

getDot() метод CaretEvent class возвращает желаемый результат, вы можете назначить его глобальной переменной для использования позже.


вот ваш ответ:

http://docs.oracle.com/javase/6/docs/api/javax/swing/text/JTextComponent.html#getCaretPosition%28%29

используйте ActionListener для ожидания действия. Когда пользователь вводит что-то, найдите позицию каретки.