After pressing Control-R we get the following:
KeyTest.java
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; class KeyTest extends JPanel { String title; public KeyTest(String str) { title = str; InputMap in_mp = getInputMap(WHEN_FOCUSED); ActionMap ac_mp = getActionMap(); in_mp.put(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), "UP"); in_mp.put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), "DOWN"); in_mp.put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0), "RIGHT"); in_mp.put(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), "LEFT"); int mask = InputEvent.CTRL_DOWN_MASK; in_mp.put(KeyStroke.getKeyStroke('R',mask),"ROTATE"); ac_mp.put("ROTATE", new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { /* System.out.println("control: " + InputEvent.CTRL_DOWN_MASK + " " + InputEvent.ALT_DOWN_MASK); */ title = "Rotate key"; repaint(); } }); ac_mp.put("UP", new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { title = "up key"; repaint(); } }); ac_mp.put("DOWN", new AbstractAction() { public void actionPerformed(ActionEvent e) { title = "down key"; repaint(); } }); } public void paintComponent(Graphics g) { super.paintComponent( g ); Font f = new Font("Serif", Font.BOLD, 18); g.setFont(f); g.drawString(title,40,80); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { KeyTest panel = new KeyTest("KeyTest panel"); JFrame frame = new JFrame("KeyTester"); frame.add(panel); frame.setSize(200,200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); //frame.pack(); } }); } }
Maintained by John Loomis, updated Thu Apr 02 17:18:03 2020