Изменить функцию клавиши ENTER

Я хотел изменить действие по умолчанию клавиши ВВОД на JTable, поэтому я использовал этот код:

table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
        .put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "Enter");
table.getActionMap().put("Enter", new AbstractAction() {
    private static final long serialVersionUID = 1L;
    public void actionPerformed(ActionEvent ae) {
        //my action
    }
}

Тт работает нормально. Теперь я хочу изменить строку сразу после моего действия. Другими словами, выполните действие по умолчанию клавиши ввода.

1 ответ

Решение

По умолчанию Action для клавиши ВВОД "selectNextRowCell", Как показано здесь, вы можете получить ссылку на оригинал Action и вызвать в вашем новом обработчике.

String name = "selectNextRowCell";
Action action = table.getActionMap().get(name);
…
public void actionPerformed(ActionEvent ae) {
    action.actionPerformed(new ActionEvent(table, ActionEvent.ACTION_FIRST, name));
}
Другие вопросы по тегам