Я разрабатываю функциональность автозаполнения (которая состоит из небольшого окна под позицией каретки, предлагающего то, что вы будете писать), расширяющего JTextPane
, а * KeyAdapter
, связанного с этим компонентом, я написал так:
...
@Override
public void keyReleased(KeyEvent e) {
if (Character.isLetterOrDigit(e.getKeyChar())) {
p = getCaret().getMagicCaretPosition();
if (p != null) {
SwingUtilities.convertPointToScreen(p, this);
p.x = p.x + 2;
p.y = p.y + 20;
autocompletion.setLocation(p.x, p.y);
}
}
}
...
Проблема в том, что когда-то getCaret().getMagicCaretPosition()
возвращает ноль, и я не могу понять, почему.
Каков законный способ вызвать этот метод или реализовать эту функцию?