我想把textarea跟ctrl+enter关联起来,也就是创建一个加速键。不知道为什么不能用。下面是程序的部分代码。请各位给帮助小弟一下吧  InputMap imap = jsi.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
        imap.put(KeyStroke.getKeyStroke("ctrl Enter"), inputTextArea);
        ActionMap amap = jsi.getActionMap();
        amap.put(inputTextArea,new inputAction());class inputAction extends AbstractAction {
       public void actionPerformed(ActionEvent event) {
          String str = inputTextArea.getText();
          showTextArea.append(str + "\n");
          inputTextArea.setText("");
       }
    }

解决方案 »

  1.   

    是不是和楼主的输入法快捷键冲突了,把输入法的Ctrl+Enter 改成别的试试。
      

  2.   

    不清楚,找了两个可以用的,你试试看吧。 taSend.addKeyListener(new KeyAdapter()
    {
    public void keyPressed(KeyEvent ke)
    {
    if (ke.isControlDown() && ke.getKeyCode() == KeyEvent.VK_ENTER)
    System.out.println("Ctrl-ENTER");
    }
    });

    ///文本区快捷键和响应
    Action myAction = new AbstractAction("myAction") {
    public void actionPerformed(ActionEvent e) {
    //action code
    }
    };
    KeyStroke key = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, Event.CTRL_MASK);
    sendJTextArea.getInputMap().put(key, myAction);