package org.myrobotlab.mapper.sim; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JPanel; import org.myrobotlab.mapper.gui.Simbad; public class KeyInputSensor extends SensorDevice implements KeyListener { /* * a JPanel for displaying the eye image. */ public class KeyInputSensorJPanel extends JPanel { private static final long serialVersionUID = 1L; Font font; Color color; final static int HEIGHT = 12; public KeyInputSensorJPanel(KeyListener listener) { color = new Color(0, 0, 0); Dimension d = new Dimension(50, HEIGHT); setPreferredSize(d); setMinimumSize(d); font = new Font("Arial", Font.PLAIN, HEIGHT - 2); /* * // receive key event in parent this.addKeyListener(parent); * * // this.requestFocusInWindow(true); this.requestFocus(); * setFocusable(true); */ Simbad.getSimbadInstance().getDesktopPane().addKeyListener(listener); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setFont(font); g.drawString("last key :" + KeyEvent.getKeyText(lastKey), HEIGHT + 10, HEIGHT - 1); } } /** Last input , -1 if none */ int lastKey; JPanel panel; public KeyInputSensor() { super.create3D(true); lastKey = -1; // KeyboardFocusManager kfm = // KeyboardFocusManager.getCurrentKeyboardFocusManager(); // Component comp = kfm.getPermanentFocusOwner(); // comp.addKeyListener(this); } @Override public JPanel createInspectorPanel() { panel = new KeyInputSensorJPanel(this); return panel; } public int getLastKey() { return lastKey; } @Override public void keyPressed(KeyEvent event) { lastKey = event.getKeyCode(); panel.repaint(); } @Override public void keyReleased(KeyEvent arg0) { lastKey = -1; panel.repaint(); } @Override public void keyTyped(KeyEvent event) { } }