blackbishop blackbishop - 5 months ago 27
Java Question

Change ENTER Key function

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.

Answer

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));
}
Comments