在特定令牌上显示弹出窗口

时间:2012-09-05 15:02:23

标签: java swing jtextarea

显示弹出窗口,

如果特定令牌不正确,我想显示弹出窗口显示所有可能的值。键入空格键时会触发此事件。它工作正常。一个错误是,当光标在行中的任何地方弹出弹出窗口时,我想只显示正确的令牌所在的弹出窗口。

  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);
}

0 个答案:

没有答案