Изменить общие ключи с помощью KeyStroke в Java

Я пытаюсь создать редактор с несколькими горячими клавишами. Этот редактор будет выполнять некоторые функции при каждом нажатии. (кстати, извините, если мой английский плохой: D)

Я сделал это с помощью клавиши Enter (клавиша возврата, удаления и клавиши со стрелкой). (примечание: ta — текстовая область, javaswing)

    String keyStrokeAndKey_enter = "ENTER";
    KeyStroke keyStroke_enter = KeyStroke.getKeyStroke(keyStrokeAndKey_enter);
    ta.getInputMap().put(keyStroke_enter, keyStrokeAndKey_enter);
    ta.getActionMap().put(keyStrokeAndKey_enter, enter);

Я сделал, если мы используем alt+[клавиша]

    String keyStrokeAndKey_1 = "1";
    KeyStroke keyStroke_1 = KeyStroke.getKeyStroke(KeyEvent.VK_1, Event.CTRL_MASK);
    ta.getInputMap().put(keyStroke_1, keyStrokeAndKey_1);
    ta.getActionMap().put(keyStrokeAndKey_1, _1);

Но я застрял только с алфавитной клавишей (a, b, c и т. д.). Я пробовал так:

    String keyStrokeAndKey_a = "a";
    KeyStroke keyStroke_a = KeyStroke.getKeyStroke(keyStrokeAndKey_a);
    ta.getInputMap().put(keyStroke_a, keyStrokeAndKey_a);
    ta.getActionMap().put(keyStrokeAndKey_a, _a);

Итак, что я должен сделать, чтобы решить мою проблему? Спасибо раньше :)


person TblsX    schedule 21.08.2013    source источник
comment
(код обрезан) вы пропустили настройку для Focus, чтобы лучше помочь, скорее опубликуйте SSCCE, короткий, исполняемый, компилируемый почти (un_knows) JComponent с добавленным KeyBindings   -  person mKorbel    schedule 21.08.2013
comment
Я мало что знаю, но что, если вы попробуете String keyStrokeAndKey_a = "A"; вместо String keyStrokeAndKey_a = "a";? Вы говорите, что я сделал, если мы используем alt+[клавиша], но вы добавляете Event.CTRL_MASK (старый модификатор) вместо Event.ALT_DOWN_MASK :-)   -  person nIcE cOw    schedule 21.08.2013
comment
Хм.. ты прав. Не ALT+[клавиша], а CTRL+[клавиша]. хахахаха..спасибо   -  person TblsX    schedule 21.08.2013