1

I wanted to change the default action of the ENTER key on JTable, so I used this code:

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
    }
}

Tt works normally. What I want now is to change the row just after my action. In other words, execute the default action of the enter key.

trashgod
  • 203,806
  • 29
  • 246
  • 1,045
blackbishop
  • 30,945
  • 11
  • 55
  • 76

1 Answers1

4

The default Action for the ENTER key is "selectNextRowCell". As shown here, you can obtain a reference to the original Action and evoke in your new handler.

String name = "selectNextRowCell";
Action action = table.getActionMap().get(name);
…
public void actionPerformed(ActionEvent ae) {
    action.actionPerformed(new ActionEvent(table, ActionEvent.ACTION_FIRST, name));
}
Community
  • 1
  • 1
trashgod
  • 203,806
  • 29
  • 246
  • 1,045