After pressing Control-R we get the following:
KeyTest.javaimport 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