KeyTest.java

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