показ всплывающего окна,
Я хочу показать всплывающее окно, показывающее все возможные значения, если конкретный токен неверен. Это событие срабатывает при нажатии пробела. Это работает нормально. Одна ошибка заключается в том, что всплывающее окно появляется везде, где находится курсор в строке, я хочу показать всплывающее окно только там, где должен был быть правильный токен.
String str = Australia Canberra Dollar
String tokens = str.split("\\s+");
private void editorTextAreaKeyTyped(java.awt.event.KeyEvent evt) {
if ((evt.getKeyChar() == KeyEvent.VK_SPACE)) {
if(!tokens[0].equals("Australia")){
showPopup(editor, menu);
}
}
}
public void showPopUpMenu(JTextArea jTextArea, List menuItems) {
JPopupMenu popup = new JPopupMenu();
Point point = getPoint(jTextArea);
Caret caret = getCaret(jTextArea);
JMenuItem menuItem;
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jTextArea.insert(e.getActionCommand(), jTextArea.getCaret().getDot());
}
};
for (Object mi : menuItems) {
menuItem = new JMenuItem(mi.toString());
menuItem.addActionListener(al);
popup.add(menuItem);
}
popup.show(jTextArea, point.x, point.y);
}
viewToModel()
иmodelToView()
для получения точки внутри JTextArea, где вы хотите, чтобы ваш PopUp появился. Надеюсь, этот пример может пролить больше света на то, что я говорю. - person nIcE cOw   schedule 05.09.2012JTextComponent
, которые можно использовать для перевода между смещением документа и координатами просмотра. Я подожду его ответа. - person trashgod   schedule 05.09.2012