Как найти местоположение отображения (x, y) смещения в JTextPane? - PullRequest
1 голос
/ 04 января 2012

У меня есть DocumentListener, у которого есть доступ к JTextPane, содержащему документ. В некоторых случаях DocumentListener хочет открыть список команд, которые начинаются со строки, введенной пользователем.

DocumentEvent имеет смещение символа, но мне нужно преобразовать его в местоположение X, Y, чтобы правильно расположить всплывающее окно.

В настоящее время код использует textPane.modelToView (смещение), чтобы получить прямоугольник для определения местоположения, но это иногда вызывает NullPointerExceptions.

Есть ли другой способ сделать это преобразование?

Ответы [ 2 ]

2 голосов
/ 05 января 2012

В настоящее время код использует textPane.modelToView (смещение), чтобы получить прямоугольник для определения местоположения, но иногда это вызывает исключения NullPointerException.

Окружить всплывающее окно и modelTOView ()звонки в SwingUtilities.invokeLater.Я думаю, что когда-нибудь вы спросите о позиции, но расположение видов еще не закончено.

2 голосов
/ 05 января 2012

Попробуйте JTextPane.modelToView . Чтобы пойти другим путем, вы бы использовали JTextPane.viewToModel .

Упс ... Я пропустил ту часть, где вы сказали, что уже используете modelToView. Я считаю, что вы можете использовать функции преобразования только тогда, когда ваш компонент отображается и отображается. Может ли это быть причиной вашего NPE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...