Mega Code Archive

 
Categories / Java / Event
 

Show events as they happen

// : c14:TrackEvent.java // Show events as they happen. // <applet code=TrackEvent width=700 height=500></applet> // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // www.BruceEckel.com. See copyright notice in CopyRight.txt. import java.awt.Color; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.util.HashMap; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class TrackEvent extends JApplet {   private HashMap h = new HashMap();   private String[] event = { "focusGained", "focusLost", "keyPressed",       "keyReleased", "keyTyped", "mouseClicked", "mouseEntered",       "mouseExited", "mousePressed", "mouseReleased", "mouseDragged",       "mouseMoved" };   private MyButton b1 = new MyButton(Color.BLUE, "test1"), b2 = new MyButton(       Color.RED, "test2");   class MyButton extends JButton {     void report(String field, String msg) {       ((JTextField) h.get(field)).setText(msg);     }     FocusListener fl = new FocusListener() {       public void focusGained(FocusEvent e) {         report("focusGained", e.paramString());       }       public void focusLost(FocusEvent e) {         report("focusLost", e.paramString());       }     };     KeyListener kl = new KeyListener() {       public void keyPressed(KeyEvent e) {         report("keyPressed", e.paramString());       }       public void keyReleased(KeyEvent e) {         report("keyReleased", e.paramString());       }       public void keyTyped(KeyEvent e) {         report("keyTyped", e.paramString());       }     };     MouseListener ml = new MouseListener() {       public void mouseClicked(MouseEvent e) {         report("mouseClicked", e.paramString());       }       public void mouseEntered(MouseEvent e) {         report("mouseEntered", e.paramString());       }       public void mouseExited(MouseEvent e) {         report("mouseExited", e.paramString());       }       public void mousePressed(MouseEvent e) {         report("mousePressed", e.paramString());       }       public void mouseReleased(MouseEvent e) {         report("mouseReleased", e.paramString());       }     };     MouseMotionListener mml = new MouseMotionListener() {       public void mouseDragged(MouseEvent e) {         report("mouseDragged", e.paramString());       }       public void mouseMoved(MouseEvent e) {         report("mouseMoved", e.paramString());       }     };     public MyButton(Color color, String label) {       super(label);       setBackground(color);       addFocusListener(fl);       addKeyListener(kl);       addMouseListener(ml);       addMouseMotionListener(mml);     }   }   public void init() {     Container c = getContentPane();     c.setLayout(new GridLayout(event.length + 1, 2));     for (int i = 0; i < event.length; i++) {       JTextField t = new JTextField();       t.setEditable(false);       c.add(new JLabel(event[i], JLabel.RIGHT));       c.add(t);       h.put(event[i], t);     }     c.add(b1);     c.add(b2);   }   public static void main(String[] args) {     run(new TrackEvent(), 700, 500);   }   public static void run(JApplet applet, int width, int height) {     JFrame frame = new JFrame();     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     frame.getContentPane().add(applet);     frame.setSize(width, height);     applet.init();     applet.start();     frame.setVisible(true);   } } ///:~