3
我有一個包含大量組件的JPanel。當用戶按下「a」時,我想要做某些事情並使用「a」,除非用戶在文本框中(或接受「a」的屏幕的其他部分) - 在這種情況下,不想知道「a」。JPanel中的java swing快捷鍵/鍵綁定
在下面的代碼中,即使焦點位於文本框(在文本框中輸入「a」時在文本框中放入「a」並且還通知我有關「a」 「一個」)。
JComponent jc = the panel...;
InputMap inputMap = jc.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
ActionMap actionMap = jc.getActionMap();
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, 0), "qcAccept");
actionMap.put("qcAccept", new AbstractAction("qcAccept") {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("A pressed, " + e);
}
});
這工作,謝謝。我重新閱讀了KeyStroke類的文檔,並且仍然不會根據該文檔來了解這一點! – Mary 2013-05-03 14:50:35