rendered paste bodyimport java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.KeyEvent;import javax.swing.AbstractAction;import javax.swing.ActionMap;import javax.swing.InputMap;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.KeyStroke;public class Test { public static void main(String[] args) { final JFrame frame = new JFrame("test"); JTextField field1 = new JTextField(9); JTextField field2 = new JTextField(9); Container pane = frame.getContentPane(); pane.setLayout(new FlowLayout()); pane.add(field1); pane.add(field2); frame.pack(); frame.setVisible(true); InputMap imap = field1.getInputMap(); imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, java.awt.Event.CTRL_MASK), "next"); imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), "next2"); imap.put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), "up"); class NextAction extends AbstractAction { public void actionPerformed(ActionEvent e) { System.out.println("Detected action"); JOptionPane.showMessageDialog(frame, "Detected"); } } ActionMap amap = field1.getActionMap(); amap.put("next", new NextAction()); amap.put("next2", new NextAction()); amap.put("up", new NextAction()); }}