Каков наилучший способ определения действий для большого количества сопоставлений клавиш для компонента в Swing?Работа с LOTS сопоставлений клавиш
Я построил собственный текстовый вид в Swing и хочу определить действия для множества ключей. То, как я сейчас делаю это (около 10 ключей до сих пор) является:
ActionMap actionMap = DBDocument.this.getActionMap();
int condition = JComponent.WHEN_FOCUSED;
InputMap inputMap = DBDocument.this.getInputMap(condition);
String tab = "tab";
actionMap.put(tab, new AbstractAction() {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent ap) {
if(mDocumentModel != null){
//Do some stuff here
}
}
});
Это, очевидно, очень многословным способ определения клавиш. В идеале я мог бы определить действие, которое имеет множество возможностей (например, [A-Z] или [0-9]). Я искал определения в OpenJDK, но не очень далеко.
Поместить все ["МНОГИ КНОПКИ" в массив] (http://stackoverflow.com/a/7940227/714968), используйте один массив для простых клавиш [AZ]/[0-9], второй для модификатора + (например, ALT + [AZ]/[0-9]) и т. д. – mKorbel
и использовать is/setEnabled для вашего XxxAction – mKorbel