/* Listing2906.java */ import java.awt.*; import java.awt.event.*; public class Listing2906 extends Frame implements KeyListener { String msg1 = ""; String msg2 = ""; public static void main(String[] args) { Listing2906 wnd = new Listing2906(); } public Listing2906() { super("Tastaturereignisse"); addKeyListener(this); addWindowListener(new WindowClosingAdapter(true)); setBackground(Color.lightGray); setSize(300,200); setLocation(200,100); setVisible(true); } public void paint(Graphics g) { if (msg1.length() > 0) { draw3DRect(g,20,50,250,30); g.setColor(Color.black); g.drawString(msg1,30,70); } if (msg2.length() > 0) { draw3DRect(g,20,100,250,30); g.setColor(Color.black); g.drawString(msg2,30,120); } } void draw3DRect(Graphics g,int x,int y,int width,int height) { g.setColor(Color.darkGray); g.drawLine(x,y,x,y+height); g.drawLine(x,y,x+width,y); g.setColor(Color.white); g.drawLine(x+width,y+height,x,y+height); g.drawLine(x+width,y+height,x+width,y); } public void keyPressed(KeyEvent event) { msg1 = ""; System.out.println( "key pressed: " + "key char = " + event.getKeyChar() + " " + "key code = " + event.getKeyCode() ); if (event.getKeyChar() == KeyEvent.CHAR_UNDEFINED) { int key = event.getKeyCode(); //Funktionstaste abfragen if (key == KeyEvent.VK_F1) { msg1 = "F1"; } else if (key == KeyEvent.VK_F2) { msg1 = "F2"; } else if (key == KeyEvent.VK_F3) { msg1 = "F3"; } //Modifier abfragen if (msg1.length() > 0) { if (event.isAltDown()) { msg1 = "ALT + " + msg1; } if (event.isControlDown()) { msg1 = "STRG + " + msg1; } if (event.isShiftDown()) { msg1 = "UMSCHALT + " + msg1; } } } repaint(); } public void keyReleased(KeyEvent event) { System.out.println("key released"); msg1 = ""; repaint(); } public void keyTyped(KeyEvent event) { char key = event.getKeyChar(); System.out.println("key typed: " + key); if (key == KeyEvent.VK_BACK_SPACE) { if (msg2.length() > 0) { msg2 = msg2.substring(0,msg2.length() - 1); } } else if (key >= KeyEvent.VK_SPACE) { if (msg2.length() < 40) { msg2 += event.getKeyChar(); } } repaint(); } }