Java by API/java.awt.event/MouseEvent

Материал из Java эксперт
Перейти к: навигация, поиск

MouseEvent: getClickCount()

   <source lang="java">

import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; public class MainClass {

 public static void main(final String args[]) {
   final String labels[] = { "A", "B", "C", "D", "E" };
   JFrame frame = new JFrame("Selecting JList");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JList jlist = new JList(labels);
   JScrollPane scrollPane1 = new JScrollPane(jlist);
   frame.add(scrollPane1);
   MouseListener mouseListener = new MouseAdapter() {
     public void mouseClicked(MouseEvent mouseEvent) {
       JList theList = (JList) mouseEvent.getSource();
       if (mouseEvent.getClickCount() == 2) {
         int index = theList.locationToIndex(mouseEvent.getPoint());
         if (index >= 0) {
           Object o = theList.getModel().getElementAt(index);
           System.out.println("Double-clicked on: " + o.toString());
         }
       }
     }
   };
   jlist.addMouseListener(mouseListener);
   frame.setSize(350, 200);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



MouseEvent: getComponent()

   <source lang="java">

import java.awt.ruponent; import java.awt.GridLayout; import java.awt.KeyboardFocusManager; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Focus Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   ActionListener actionListener = new ActionFocusMover();
   MouseListener mouseListener = new MouseEnterFocusMover();
   frame.setLayout(new GridLayout(3, 3));
   for (int i = 1; i < 10; i++) {
     JButton button = new JButton(Integer.toString(i));
     button.addActionListener(actionListener);
     button.addMouseListener(mouseListener);
     if ((i % 2) != 0) {
       button.setFocusable(false);
     }
     frame.add(button);
   }
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

} class ActionFocusMover implements ActionListener {

 public void actionPerformed(ActionEvent actionEvent) {
   KeyboardFocusManager manager = KeyboardFocusManager
       .getCurrentKeyboardFocusManager();
   manager.focusNextComponent();
 }

} class MouseEnterFocusMover extends MouseAdapter {

 public void mouseEntered(MouseEvent mouseEvent) {
   Component component = mouseEvent.getComponent();
   if (!component.hasFocus()) {
     component.requestFocusInWindow();
   }
 }

}


 </source>
   
  
 
  



MouseEvent: getModifiers()

   <source lang="java">

import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Button Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JButton button = new JButton("Select Me");
   ActionListener actionListener = new ActionListener() {
     public void actionPerformed(ActionEvent actionEvent) {
       System.out.println("I was selected.");
     }
   };
   MouseListener mouseListener = new MouseAdapter() {
     public void mousePressed(MouseEvent mouseEvent) {
       int modifiers = mouseEvent.getModifiers();
       if ((modifiers & InputEvent.BUTTON1_MASK) == InputEvent.BUTTON1_MASK) {
         System.out.println("Left button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK) {
         System.out.println("Middle button pressed.");
       }
       if ((modifiers & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK) {
         System.out.println("Right button pressed.");
       }
     }
     public void mouseReleased(MouseEvent mouseEvent) {
       if (SwingUtilities.isLeftMouseButton(mouseEvent)) {
         System.out.println("Left button released.");
       }
       if (SwingUtilities.isMiddleMouseButton(mouseEvent)) {
         System.out.println("Middle button released.");
       }
       if (SwingUtilities.isRightMouseButton(mouseEvent)) {
         System.out.println("Right button released.");
       }
       System.out.println();
     }
   };
   button.addActionListener(actionListener);
   button.addMouseListener(mouseListener);
   frame.add(button, BorderLayout.SOUTH);
   frame.setSize(300, 100);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



MouseEvent: getX()

   <source lang="java">

import java.awt.event.*; import javax.swing.*; public class MainClass extends JPanel {

 JButton button = new JButton("I Move");
 public MainClass() {
   setLayout(null);
   add(button);
   button.setSize(button.getPreferredSize());
   button.setLocation(20, 20);
   addMouseListener(new MouseAdapter() {
     public void mousePressed(MouseEvent e) {
     button.setLocation(e.getX(), e.getY());
     }
   });
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame("MoveButton");
   frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   frame.setSize(250, 200);
   frame.setLocation(200, 200);
   frame.setContentPane(new MainClass());
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



MouseEvent.getY()

   <source lang="java">

import java.awt.event.*; import javax.swing.*; public class MainClass extends JPanel {

 JButton button = new JButton("I Move");
 public MainClass() {
   setLayout(null);
   add(button);
   button.setSize(button.getPreferredSize());
   button.setLocation(20, 20);
   addMouseListener(new MouseAdapter() {
     public void mousePressed(MouseEvent e) {
     button.setLocation(e.getX(), e.getY());
     }
   });
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame("MoveButton");
   frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   frame.setSize(250, 200);
   frame.setLocation(200, 200);
   frame.setContentPane(new MainClass());
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



MouseEvent.MOUSE_CLICKED

   <source lang="java">
 

/*

* Copyright (c) 2000 David Flanagan.  All rights reserved.
* This code is from the book Java Examples in a Nutshell, 2nd Edition.
* It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
* You may study, use, and modify it for any non-commercial purpose.
* You may distribute it non-commercially as long as you retain this notice.
* For a commercial use license, or to purchase the book (recommended),
* visit http://www.davidflanagan.ru/javaexamples2.
*/

import java.awt.AWTEvent; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ruponentEvent; import java.awt.event.FocusEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JPanel; /** A program that displays all the event that occur in its window */ public class EventTestPane extends JPanel {

 /** The constructor: register the event types we are interested in */
 public EventTestPane() {
   // We"re interested in all types of events
   this.enableEvents(AWTEvent.MOUSE_EVENT_MASK
       | AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.KEY_EVENT_MASK
       | AWTEvent.FOCUS_EVENT_MASK | AWTEvent.ruPONENT_EVENT_MASK
       | AWTEvent.WINDOW_EVENT_MASK);
   this.setPreferredSize(new Dimension(500, 400));
 }
 /**
  * Display mouse events that don"t involve mouse motion. The mousemods()
  * method prints modifiers, and is defined below. The other methods return
  * additional information about the mouse event. showLine() displays a line
  * of text in the window. It is defined at the end of this class, along with
  * the paintComponent() method.
  */
 public void processMouseEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_PRESSED:
     type = "MOUSE_PRESSED";
     break;
   case MouseEvent.MOUSE_RELEASED:
     type = "MOUSE_RELEASED";
     break;
   case MouseEvent.MOUSE_CLICKED:
     type = "MOUSE_CLICKED";
     break;
   case MouseEvent.MOUSE_ENTERED:
     type = "MOUSE_ENTERED";
     break;
   case MouseEvent.MOUSE_EXITED:
     type = "MOUSE_EXITED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
   // When the mouse enters the component, request keyboard focus so
   // we can receive and respond to keyboard events
   if (e.getID() == MouseEvent.MOUSE_ENTERED)
     requestFocus();
 }
 /**
  * Display mouse moved and dragged mouse event. Note that MouseEvent is the
  * only event type that has two methods, two EventListener interfaces and
  * two adapter classes to handle two distinct categories of events. Also, as
  * seen in init(), mouse motion events must be requested separately from
  * other mouse event types.
  */
 public void processMouseMotionEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_MOVED:
     type = "MOUSE_MOVED";
     break;
   case MouseEvent.MOUSE_DRAGGED:
     type = "MOUSE_DRAGGED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
 }
 /**
  * Return a string representation of the modifiers for a MouseEvent. Note
  * that the methods called here are inherited from InputEvent.
  */
 protected String mousemods(MouseEvent e) {
   int mods = e.getModifiers();
   String s = "";
   if (e.isShiftDown())
     s += "Shift ";
   if (e.isControlDown())
     s += "Ctrl ";
   if ((mods & InputEvent.BUTTON1_MASK) != 0)
     s += "Button 1 ";
   if ((mods & InputEvent.BUTTON2_MASK) != 0)
     s += "Button 2 ";
   if ((mods & InputEvent.BUTTON3_MASK) != 0)
     s += "Button 3 ";
   return s;
 }
 /**
  * Display keyboard events.
  * 
  * Note that there are three distinct types of key events, and that key
  * events are reported by key code and/or Unicode character. KEY_PRESSED and
  * KEY_RELEASED events are generated for all key strokes. KEY_TYPED events
  * are only generated when a key stroke produces a Unicode character; these
  * events do not report a key code. If isActionKey() returns true, then the
  * key event reports only a key code, because the key that was pressed or
  * released (such as a function key) has no corresponding Unicode character.
  * Key codes can be interpreted by using the many VK_ constants defined by
  * the KeyEvent class, or they can be converted to strings using the static
  * getKeyText() method as we do here.
  */
 public void processKeyEvent(KeyEvent e) {
   String eventtype, modifiers, code, character;
   switch (e.getID()) {
   case KeyEvent.KEY_PRESSED:
     eventtype = "KEY_PRESSED";
     break;
   case KeyEvent.KEY_RELEASED:
     eventtype = "KEY_RELEASED";
     break;
   case KeyEvent.KEY_TYPED:
     eventtype = "KEY_TYPED";
     break;
   default:
     eventtype = "UNKNOWN";
   }
   // Convert the list of modifier keys to a string
   modifiers = KeyEvent.getKeyModifiersText(e.getModifiers());
   // Get string and numeric versions of the key code, if any.
   if (e.getID() == KeyEvent.KEY_TYPED)
     code = "";
   else
     code = "Code=" + KeyEvent.getKeyText(e.getKeyCode()) + " ("
         + e.getKeyCode() + ")";
   // Get string and numeric versions of the Unicode character, if any.
   if (e.isActionKey())
     character = "";
   else
     character = "Character=" + e.getKeyChar() + " (Unicode="
         + ((int) e.getKeyChar()) + ")";
   // Display it all.
   showLine(eventtype + ": " + modifiers + " " + code + " " + character);
 }
 /**
  * Display keyboard focus events. Focus can be permanently gained or lost,
  * or temporarily transferred to or from a component.
  */
 public void processFocusEvent(FocusEvent e) {
   if (e.getID() == FocusEvent.FOCUS_GAINED)
     showLine("FOCUS_GAINED" + (e.isTemporary() ? " (temporary)" : ""));
   else
     showLine("FOCUS_LOST" + (e.isTemporary() ? " (temporary)" : ""));
 }
 /** Display Component events. */
 public void processComponentEvent(ComponentEvent e) {
   switch (e.getID()) {
   case ComponentEvent.ruPONENT_MOVED:
     showLine("COMPONENT_MOVED");
     break;
   case ComponentEvent.ruPONENT_RESIZED:
     showLine("COMPONENT_RESIZED");
     break;
   case ComponentEvent.ruPONENT_HIDDEN:
     showLine("COMPONENT_HIDDEN");
     break;
   case ComponentEvent.ruPONENT_SHOWN:
     showLine("COMPONENT_SHOWN");
     break;
   }
 }
 /** Display Window events. Note the special handling of WINDOW_CLOSING */
 public void processWindowEvent(WindowEvent e) {
   switch (e.getID()) {
   case WindowEvent.WINDOW_OPENED:
     showLine("WINDOW_OPENED");
     break;
   case WindowEvent.WINDOW_CLOSED:
     showLine("WINDOW_CLOSED");
     break;
   case WindowEvent.WINDOW_CLOSING:
     showLine("WINDOW_CLOSING");
     break;
   case WindowEvent.WINDOW_ICONIFIED:
     showLine("WINDOW_ICONIFIED");
     break;
   case WindowEvent.WINDOW_DEICONIFIED:
     showLine("WINDOW_DEICONIFIED");
     break;
   case WindowEvent.WINDOW_ACTIVATED:
     showLine("WINDOW_ACTIVATED");
     break;
   case WindowEvent.WINDOW_DEACTIVATED:
     showLine("WINDOW_DEACTIVATED");
     break;
   }
   // If the user requested a window close, quit the program.
   // But first display a message, force it to be visible, and make
   // sure the user has time to read it.
   if (e.getID() == WindowEvent.WINDOW_CLOSING) {
     showLine("WINDOW_CLOSING event received.");
     showLine("Application will exit in 5 seconds");
     // Force the updates to appear now.
     update(this.getGraphics());
     // Wait five seconds
     try {
       Thread.sleep(5000);
     } catch (InterruptedException ie) {
       ;
     }
     // Exit now
     System.exit(0);
   }
 }
 /** The list of lines to display in the window */
 protected Vector lines = new Vector();
 /** Add a new line to the list of lines, and request redisplay */
 protected void showLine(String s) {
   if (lines.size() == 20)
     lines.removeElementAt(0);
   lines.addElement(s);
   repaint();
 }
 /** This method repaints the text in the window */
 public void paintComponent(Graphics g) {
   for (int i = 0; i < lines.size(); i++)
     g.drawString((String) lines.elementAt(i), 20, i * 16 + 50);
 }
 public boolean isOpaque() {
   return false;
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e) {
       System.exit(0);
     }
   });
   frame.getContentPane().add(new EventTestPane(), BorderLayout.CENTER);
   // Finally, set the size of the main window, and pop it up.
   frame.setSize(600, 400);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



MouseEvent.MOUSE_ENTERED

   <source lang="java">
 

/*

* Copyright (c) 2000 David Flanagan.  All rights reserved.
* This code is from the book Java Examples in a Nutshell, 2nd Edition.
* It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
* You may study, use, and modify it for any non-commercial purpose.
* You may distribute it non-commercially as long as you retain this notice.
* For a commercial use license, or to purchase the book (recommended),
* visit http://www.davidflanagan.ru/javaexamples2.
*/

import java.awt.AWTEvent; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ruponentEvent; import java.awt.event.FocusEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JPanel; /** A program that displays all the event that occur in its window */ public class EventTestPane extends JPanel {

 /** The constructor: register the event types we are interested in */
 public EventTestPane() {
   // We"re interested in all types of events
   this.enableEvents(AWTEvent.MOUSE_EVENT_MASK
       | AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.KEY_EVENT_MASK
       | AWTEvent.FOCUS_EVENT_MASK | AWTEvent.ruPONENT_EVENT_MASK
       | AWTEvent.WINDOW_EVENT_MASK);
   this.setPreferredSize(new Dimension(500, 400));
 }
 /**
  * Display mouse events that don"t involve mouse motion. The mousemods()
  * method prints modifiers, and is defined below. The other methods return
  * additional information about the mouse event. showLine() displays a line
  * of text in the window. It is defined at the end of this class, along with
  * the paintComponent() method.
  */
 public void processMouseEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_PRESSED:
     type = "MOUSE_PRESSED";
     break;
   case MouseEvent.MOUSE_RELEASED:
     type = "MOUSE_RELEASED";
     break;
   case MouseEvent.MOUSE_CLICKED:
     type = "MOUSE_CLICKED";
     break;
   case MouseEvent.MOUSE_ENTERED:
     type = "MOUSE_ENTERED";
     break;
   case MouseEvent.MOUSE_EXITED:
     type = "MOUSE_EXITED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
   // When the mouse enters the component, request keyboard focus so
   // we can receive and respond to keyboard events
   if (e.getID() == MouseEvent.MOUSE_ENTERED)
     requestFocus();
 }
 /**
  * Display mouse moved and dragged mouse event. Note that MouseEvent is the
  * only event type that has two methods, two EventListener interfaces and
  * two adapter classes to handle two distinct categories of events. Also, as
  * seen in init(), mouse motion events must be requested separately from
  * other mouse event types.
  */
 public void processMouseMotionEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_MOVED:
     type = "MOUSE_MOVED";
     break;
   case MouseEvent.MOUSE_DRAGGED:
     type = "MOUSE_DRAGGED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
 }
 /**
  * Return a string representation of the modifiers for a MouseEvent. Note
  * that the methods called here are inherited from InputEvent.
  */
 protected String mousemods(MouseEvent e) {
   int mods = e.getModifiers();
   String s = "";
   if (e.isShiftDown())
     s += "Shift ";
   if (e.isControlDown())
     s += "Ctrl ";
   if ((mods & InputEvent.BUTTON1_MASK) != 0)
     s += "Button 1 ";
   if ((mods & InputEvent.BUTTON2_MASK) != 0)
     s += "Button 2 ";
   if ((mods & InputEvent.BUTTON3_MASK) != 0)
     s += "Button 3 ";
   return s;
 }
 /**
  * Display keyboard events.
  * 
  * Note that there are three distinct types of key events, and that key
  * events are reported by key code and/or Unicode character. KEY_PRESSED and
  * KEY_RELEASED events are generated for all key strokes. KEY_TYPED events
  * are only generated when a key stroke produces a Unicode character; these
  * events do not report a key code. If isActionKey() returns true, then the
  * key event reports only a key code, because the key that was pressed or
  * released (such as a function key) has no corresponding Unicode character.
  * Key codes can be interpreted by using the many VK_ constants defined by
  * the KeyEvent class, or they can be converted to strings using the static
  * getKeyText() method as we do here.
  */
 public void processKeyEvent(KeyEvent e) {
   String eventtype, modifiers, code, character;
   switch (e.getID()) {
   case KeyEvent.KEY_PRESSED:
     eventtype = "KEY_PRESSED";
     break;
   case KeyEvent.KEY_RELEASED:
     eventtype = "KEY_RELEASED";
     break;
   case KeyEvent.KEY_TYPED:
     eventtype = "KEY_TYPED";
     break;
   default:
     eventtype = "UNKNOWN";
   }
   // Convert the list of modifier keys to a string
   modifiers = KeyEvent.getKeyModifiersText(e.getModifiers());
   // Get string and numeric versions of the key code, if any.
   if (e.getID() == KeyEvent.KEY_TYPED)
     code = "";
   else
     code = "Code=" + KeyEvent.getKeyText(e.getKeyCode()) + " ("
         + e.getKeyCode() + ")";
   // Get string and numeric versions of the Unicode character, if any.
   if (e.isActionKey())
     character = "";
   else
     character = "Character=" + e.getKeyChar() + " (Unicode="
         + ((int) e.getKeyChar()) + ")";
   // Display it all.
   showLine(eventtype + ": " + modifiers + " " + code + " " + character);
 }
 /**
  * Display keyboard focus events. Focus can be permanently gained or lost,
  * or temporarily transferred to or from a component.
  */
 public void processFocusEvent(FocusEvent e) {
   if (e.getID() == FocusEvent.FOCUS_GAINED)
     showLine("FOCUS_GAINED" + (e.isTemporary() ? " (temporary)" : ""));
   else
     showLine("FOCUS_LOST" + (e.isTemporary() ? " (temporary)" : ""));
 }
 /** Display Component events. */
 public void processComponentEvent(ComponentEvent e) {
   switch (e.getID()) {
   case ComponentEvent.ruPONENT_MOVED:
     showLine("COMPONENT_MOVED");
     break;
   case ComponentEvent.ruPONENT_RESIZED:
     showLine("COMPONENT_RESIZED");
     break;
   case ComponentEvent.ruPONENT_HIDDEN:
     showLine("COMPONENT_HIDDEN");
     break;
   case ComponentEvent.ruPONENT_SHOWN:
     showLine("COMPONENT_SHOWN");
     break;
   }
 }
 /** Display Window events. Note the special handling of WINDOW_CLOSING */
 public void processWindowEvent(WindowEvent e) {
   switch (e.getID()) {
   case WindowEvent.WINDOW_OPENED:
     showLine("WINDOW_OPENED");
     break;
   case WindowEvent.WINDOW_CLOSED:
     showLine("WINDOW_CLOSED");
     break;
   case WindowEvent.WINDOW_CLOSING:
     showLine("WINDOW_CLOSING");
     break;
   case WindowEvent.WINDOW_ICONIFIED:
     showLine("WINDOW_ICONIFIED");
     break;
   case WindowEvent.WINDOW_DEICONIFIED:
     showLine("WINDOW_DEICONIFIED");
     break;
   case WindowEvent.WINDOW_ACTIVATED:
     showLine("WINDOW_ACTIVATED");
     break;
   case WindowEvent.WINDOW_DEACTIVATED:
     showLine("WINDOW_DEACTIVATED");
     break;
   }
   // If the user requested a window close, quit the program.
   // But first display a message, force it to be visible, and make
   // sure the user has time to read it.
   if (e.getID() == WindowEvent.WINDOW_CLOSING) {
     showLine("WINDOW_CLOSING event received.");
     showLine("Application will exit in 5 seconds");
     // Force the updates to appear now.
     update(this.getGraphics());
     // Wait five seconds
     try {
       Thread.sleep(5000);
     } catch (InterruptedException ie) {
       ;
     }
     // Exit now
     System.exit(0);
   }
 }
 /** The list of lines to display in the window */
 protected Vector lines = new Vector();
 /** Add a new line to the list of lines, and request redisplay */
 protected void showLine(String s) {
   if (lines.size() == 20)
     lines.removeElementAt(0);
   lines.addElement(s);
   repaint();
 }
 /** This method repaints the text in the window */
 public void paintComponent(Graphics g) {
   for (int i = 0; i < lines.size(); i++)
     g.drawString((String) lines.elementAt(i), 20, i * 16 + 50);
 }
 public boolean isOpaque() {
   return false;
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e) {
       System.exit(0);
     }
   });
   frame.getContentPane().add(new EventTestPane(), BorderLayout.CENTER);
   // Finally, set the size of the main window, and pop it up.
   frame.setSize(600, 400);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



MouseEvent.MOUSE_EXITED

   <source lang="java">
 

/*

* Copyright (c) 2000 David Flanagan.  All rights reserved.
* This code is from the book Java Examples in a Nutshell, 2nd Edition.
* It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
* You may study, use, and modify it for any non-commercial purpose.
* You may distribute it non-commercially as long as you retain this notice.
* For a commercial use license, or to purchase the book (recommended),
* visit http://www.davidflanagan.ru/javaexamples2.
*/

import java.awt.AWTEvent; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ruponentEvent; import java.awt.event.FocusEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JPanel; /** A program that displays all the event that occur in its window */ public class EventTestPane extends JPanel {

 /** The constructor: register the event types we are interested in */
 public EventTestPane() {
   // We"re interested in all types of events
   this.enableEvents(AWTEvent.MOUSE_EVENT_MASK
       | AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.KEY_EVENT_MASK
       | AWTEvent.FOCUS_EVENT_MASK | AWTEvent.ruPONENT_EVENT_MASK
       | AWTEvent.WINDOW_EVENT_MASK);
   this.setPreferredSize(new Dimension(500, 400));
 }
 /**
  * Display mouse events that don"t involve mouse motion. The mousemods()
  * method prints modifiers, and is defined below. The other methods return
  * additional information about the mouse event. showLine() displays a line
  * of text in the window. It is defined at the end of this class, along with
  * the paintComponent() method.
  */
 public void processMouseEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_PRESSED:
     type = "MOUSE_PRESSED";
     break;
   case MouseEvent.MOUSE_RELEASED:
     type = "MOUSE_RELEASED";
     break;
   case MouseEvent.MOUSE_CLICKED:
     type = "MOUSE_CLICKED";
     break;
   case MouseEvent.MOUSE_ENTERED:
     type = "MOUSE_ENTERED";
     break;
   case MouseEvent.MOUSE_EXITED:
     type = "MOUSE_EXITED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
   // When the mouse enters the component, request keyboard focus so
   // we can receive and respond to keyboard events
   if (e.getID() == MouseEvent.MOUSE_ENTERED)
     requestFocus();
 }
 /**
  * Display mouse moved and dragged mouse event. Note that MouseEvent is the
  * only event type that has two methods, two EventListener interfaces and
  * two adapter classes to handle two distinct categories of events. Also, as
  * seen in init(), mouse motion events must be requested separately from
  * other mouse event types.
  */
 public void processMouseMotionEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_MOVED:
     type = "MOUSE_MOVED";
     break;
   case MouseEvent.MOUSE_DRAGGED:
     type = "MOUSE_DRAGGED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
 }
 /**
  * Return a string representation of the modifiers for a MouseEvent. Note
  * that the methods called here are inherited from InputEvent.
  */
 protected String mousemods(MouseEvent e) {
   int mods = e.getModifiers();
   String s = "";
   if (e.isShiftDown())
     s += "Shift ";
   if (e.isControlDown())
     s += "Ctrl ";
   if ((mods & InputEvent.BUTTON1_MASK) != 0)
     s += "Button 1 ";
   if ((mods & InputEvent.BUTTON2_MASK) != 0)
     s += "Button 2 ";
   if ((mods & InputEvent.BUTTON3_MASK) != 0)
     s += "Button 3 ";
   return s;
 }
 /**
  * Display keyboard events.
  * 
  * Note that there are three distinct types of key events, and that key
  * events are reported by key code and/or Unicode character. KEY_PRESSED and
  * KEY_RELEASED events are generated for all key strokes. KEY_TYPED events
  * are only generated when a key stroke produces a Unicode character; these
  * events do not report a key code. If isActionKey() returns true, then the
  * key event reports only a key code, because the key that was pressed or
  * released (such as a function key) has no corresponding Unicode character.
  * Key codes can be interpreted by using the many VK_ constants defined by
  * the KeyEvent class, or they can be converted to strings using the static
  * getKeyText() method as we do here.
  */
 public void processKeyEvent(KeyEvent e) {
   String eventtype, modifiers, code, character;
   switch (e.getID()) {
   case KeyEvent.KEY_PRESSED:
     eventtype = "KEY_PRESSED";
     break;
   case KeyEvent.KEY_RELEASED:
     eventtype = "KEY_RELEASED";
     break;
   case KeyEvent.KEY_TYPED:
     eventtype = "KEY_TYPED";
     break;
   default:
     eventtype = "UNKNOWN";
   }
   // Convert the list of modifier keys to a string
   modifiers = KeyEvent.getKeyModifiersText(e.getModifiers());
   // Get string and numeric versions of the key code, if any.
   if (e.getID() == KeyEvent.KEY_TYPED)
     code = "";
   else
     code = "Code=" + KeyEvent.getKeyText(e.getKeyCode()) + " ("
         + e.getKeyCode() + ")";
   // Get string and numeric versions of the Unicode character, if any.
   if (e.isActionKey())
     character = "";
   else
     character = "Character=" + e.getKeyChar() + " (Unicode="
         + ((int) e.getKeyChar()) + ")";
   // Display it all.
   showLine(eventtype + ": " + modifiers + " " + code + " " + character);
 }
 /**
  * Display keyboard focus events. Focus can be permanently gained or lost,
  * or temporarily transferred to or from a component.
  */
 public void processFocusEvent(FocusEvent e) {
   if (e.getID() == FocusEvent.FOCUS_GAINED)
     showLine("FOCUS_GAINED" + (e.isTemporary() ? " (temporary)" : ""));
   else
     showLine("FOCUS_LOST" + (e.isTemporary() ? " (temporary)" : ""));
 }
 /** Display Component events. */
 public void processComponentEvent(ComponentEvent e) {
   switch (e.getID()) {
   case ComponentEvent.ruPONENT_MOVED:
     showLine("COMPONENT_MOVED");
     break;
   case ComponentEvent.ruPONENT_RESIZED:
     showLine("COMPONENT_RESIZED");
     break;
   case ComponentEvent.ruPONENT_HIDDEN:
     showLine("COMPONENT_HIDDEN");
     break;
   case ComponentEvent.ruPONENT_SHOWN:
     showLine("COMPONENT_SHOWN");
     break;
   }
 }
 /** Display Window events. Note the special handling of WINDOW_CLOSING */
 public void processWindowEvent(WindowEvent e) {
   switch (e.getID()) {
   case WindowEvent.WINDOW_OPENED:
     showLine("WINDOW_OPENED");
     break;
   case WindowEvent.WINDOW_CLOSED:
     showLine("WINDOW_CLOSED");
     break;
   case WindowEvent.WINDOW_CLOSING:
     showLine("WINDOW_CLOSING");
     break;
   case WindowEvent.WINDOW_ICONIFIED:
     showLine("WINDOW_ICONIFIED");
     break;
   case WindowEvent.WINDOW_DEICONIFIED:
     showLine("WINDOW_DEICONIFIED");
     break;
   case WindowEvent.WINDOW_ACTIVATED:
     showLine("WINDOW_ACTIVATED");
     break;
   case WindowEvent.WINDOW_DEACTIVATED:
     showLine("WINDOW_DEACTIVATED");
     break;
   }
   // If the user requested a window close, quit the program.
   // But first display a message, force it to be visible, and make
   // sure the user has time to read it.
   if (e.getID() == WindowEvent.WINDOW_CLOSING) {
     showLine("WINDOW_CLOSING event received.");
     showLine("Application will exit in 5 seconds");
     // Force the updates to appear now.
     update(this.getGraphics());
     // Wait five seconds
     try {
       Thread.sleep(5000);
     } catch (InterruptedException ie) {
       ;
     }
     // Exit now
     System.exit(0);
   }
 }
 /** The list of lines to display in the window */
 protected Vector lines = new Vector();
 /** Add a new line to the list of lines, and request redisplay */
 protected void showLine(String s) {
   if (lines.size() == 20)
     lines.removeElementAt(0);
   lines.addElement(s);
   repaint();
 }
 /** This method repaints the text in the window */
 public void paintComponent(Graphics g) {
   for (int i = 0; i < lines.size(); i++)
     g.drawString((String) lines.elementAt(i), 20, i * 16 + 50);
 }
 public boolean isOpaque() {
   return false;
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e) {
       System.exit(0);
     }
   });
   frame.getContentPane().add(new EventTestPane(), BorderLayout.CENTER);
   // Finally, set the size of the main window, and pop it up.
   frame.setSize(600, 400);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



MouseEvent.MOUSE_PRESSED

   <source lang="java">

// This example is from the book _Java AWT Reference_ by John Zukowski. // Written by John Zukowski. Copyright (c) 1997 O"Reilly & Associates. // You may study, use, modify, and distribute this example for any purpose. // This example is provided WITHOUT WARRANTY either expressed or import java.awt.AWTEvent; import java.awt.AWTEventMulticaster; import java.awt.ruponent; import java.awt.Frame; import java.awt.ItemSelectable; import java.awt.SystemColor; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseEvent; class ItemEventComponent extends Component implements ItemSelectable {

 boolean selected;
 int i = 0;
 ItemListener itemListener = null;
 ItemEventComponent() {
   enableEvents(AWTEvent.MOUSE_EVENT_MASK);
 }
 public Object[] getSelectedObjects() {
   Object o[] = new Object[1];
   o[0] = new Integer(i);
   return o;
 }
 public void addItemListener(ItemListener l) {
   itemListener = AWTEventMulticaster.add(itemListener, l);
 }
 public void removeItemListener(ItemListener l) {
   itemListener = AWTEventMulticaster.remove(itemListener, l);
 }
 public void processEvent(AWTEvent e) {
   if (e.getID() == MouseEvent.MOUSE_PRESSED) {
     if (itemListener != null) {
       selected = !selected;
       i++;
       itemListener.itemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED,
           getSelectedObjects(), (selected ? ItemEvent.SELECTED : ItemEvent.DESELECTED)));
     }
   }
 }

} public class MainClass extends Frame implements ItemListener {

 MainClass() {
   super("Listening In");
   ItemEventComponent c = new ItemEventComponent();
   add(c, "Center");
   c.addItemListener(this);
   c.setBackground(SystemColor.control);
   setSize(200, 200);
 }
 public void itemStateChanged(ItemEvent e) {
   Object[] o = e.getItemSelectable().getSelectedObjects();
   Integer i = (Integer) o[0];
   System.out.println(i);
 }
 public static void main(String args[]) {
   MainClass f = new MainClass();
   f.show();
 }

}


 </source>
   
  
 
  



MouseEvent.MOUSE_RELEASED

   <source lang="java">
 

/*

* Copyright (c) 2000 David Flanagan.  All rights reserved.
* This code is from the book Java Examples in a Nutshell, 2nd Edition.
* It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
* You may study, use, and modify it for any non-commercial purpose.
* You may distribute it non-commercially as long as you retain this notice.
* For a commercial use license, or to purchase the book (recommended),
* visit http://www.davidflanagan.ru/javaexamples2.
*/

import java.awt.AWTEvent; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ruponentEvent; import java.awt.event.FocusEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JPanel; /** A program that displays all the event that occur in its window */ public class EventTestPane extends JPanel {

 /** The constructor: register the event types we are interested in */
 public EventTestPane() {
   // We"re interested in all types of events
   this.enableEvents(AWTEvent.MOUSE_EVENT_MASK
       | AWTEvent.MOUSE_MOTION_EVENT_MASK | AWTEvent.KEY_EVENT_MASK
       | AWTEvent.FOCUS_EVENT_MASK | AWTEvent.ruPONENT_EVENT_MASK
       | AWTEvent.WINDOW_EVENT_MASK);
   this.setPreferredSize(new Dimension(500, 400));
 }
 /**
  * Display mouse events that don"t involve mouse motion. The mousemods()
  * method prints modifiers, and is defined below. The other methods return
  * additional information about the mouse event. showLine() displays a line
  * of text in the window. It is defined at the end of this class, along with
  * the paintComponent() method.
  */
 public void processMouseEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_PRESSED:
     type = "MOUSE_PRESSED";
     break;
   case MouseEvent.MOUSE_RELEASED:
     type = "MOUSE_RELEASED";
     break;
   case MouseEvent.MOUSE_CLICKED:
     type = "MOUSE_CLICKED";
     break;
   case MouseEvent.MOUSE_ENTERED:
     type = "MOUSE_ENTERED";
     break;
   case MouseEvent.MOUSE_EXITED:
     type = "MOUSE_EXITED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
   // When the mouse enters the component, request keyboard focus so
   // we can receive and respond to keyboard events
   if (e.getID() == MouseEvent.MOUSE_ENTERED)
     requestFocus();
 }
 /**
  * Display mouse moved and dragged mouse event. Note that MouseEvent is the
  * only event type that has two methods, two EventListener interfaces and
  * two adapter classes to handle two distinct categories of events. Also, as
  * seen in init(), mouse motion events must be requested separately from
  * other mouse event types.
  */
 public void processMouseMotionEvent(MouseEvent e) {
   String type = null;
   switch (e.getID()) {
   case MouseEvent.MOUSE_MOVED:
     type = "MOUSE_MOVED";
     break;
   case MouseEvent.MOUSE_DRAGGED:
     type = "MOUSE_DRAGGED";
     break;
   }
   showLine(mousemods(e) + type + ": [" + e.getX() + "," + e.getY() + "] "
       + "num clicks = " + e.getClickCount()
       + (e.isPopupTrigger() ? "; is popup trigger" : ""));
 }
 /**
  * Return a string representation of the modifiers for a MouseEvent. Note
  * that the methods called here are inherited from InputEvent.
  */
 protected String mousemods(MouseEvent e) {
   int mods = e.getModifiers();
   String s = "";
   if (e.isShiftDown())
     s += "Shift ";
   if (e.isControlDown())
     s += "Ctrl ";
   if ((mods & InputEvent.BUTTON1_MASK) != 0)
     s += "Button 1 ";
   if ((mods & InputEvent.BUTTON2_MASK) != 0)
     s += "Button 2 ";
   if ((mods & InputEvent.BUTTON3_MASK) != 0)
     s += "Button 3 ";
   return s;
 }
 /**
  * Display keyboard events.
  * 
  * Note that there are three distinct types of key events, and that key
  * events are reported by key code and/or Unicode character. KEY_PRESSED and
  * KEY_RELEASED events are generated for all key strokes. KEY_TYPED events
  * are only generated when a key stroke produces a Unicode character; these
  * events do not report a key code. If isActionKey() returns true, then the
  * key event reports only a key code, because the key that was pressed or
  * released (such as a function key) has no corresponding Unicode character.
  * Key codes can be interpreted by using the many VK_ constants defined by
  * the KeyEvent class, or they can be converted to strings using the static
  * getKeyText() method as we do here.
  */
 public void processKeyEvent(KeyEvent e) {
   String eventtype, modifiers, code, character;
   switch (e.getID()) {
   case KeyEvent.KEY_PRESSED:
     eventtype = "KEY_PRESSED";
     break;
   case KeyEvent.KEY_RELEASED:
     eventtype = "KEY_RELEASED";
     break;
   case KeyEvent.KEY_TYPED:
     eventtype = "KEY_TYPED";
     break;
   default:
     eventtype = "UNKNOWN";
   }
   // Convert the list of modifier keys to a string
   modifiers = KeyEvent.getKeyModifiersText(e.getModifiers());
   // Get string and numeric versions of the key code, if any.
   if (e.getID() == KeyEvent.KEY_TYPED)
     code = "";
   else
     code = "Code=" + KeyEvent.getKeyText(e.getKeyCode()) + " ("
         + e.getKeyCode() + ")";
   // Get string and numeric versions of the Unicode character, if any.
   if (e.isActionKey())
     character = "";
   else
     character = "Character=" + e.getKeyChar() + " (Unicode="
         + ((int) e.getKeyChar()) + ")";
   // Display it all.
   showLine(eventtype + ": " + modifiers + " " + code + " " + character);
 }
 /**
  * Display keyboard focus events. Focus can be permanently gained or lost,
  * or temporarily transferred to or from a component.
  */
 public void processFocusEvent(FocusEvent e) {
   if (e.getID() == FocusEvent.FOCUS_GAINED)
     showLine("FOCUS_GAINED" + (e.isTemporary() ? " (temporary)" : ""));
   else
     showLine("FOCUS_LOST" + (e.isTemporary() ? " (temporary)" : ""));
 }
 /** Display Component events. */
 public void processComponentEvent(ComponentEvent e) {
   switch (e.getID()) {
   case ComponentEvent.ruPONENT_MOVED:
     showLine("COMPONENT_MOVED");
     break;
   case ComponentEvent.ruPONENT_RESIZED:
     showLine("COMPONENT_RESIZED");
     break;
   case ComponentEvent.ruPONENT_HIDDEN:
     showLine("COMPONENT_HIDDEN");
     break;
   case ComponentEvent.ruPONENT_SHOWN:
     showLine("COMPONENT_SHOWN");
     break;
   }
 }
 /** Display Window events. Note the special handling of WINDOW_CLOSING */
 public void processWindowEvent(WindowEvent e) {
   switch (e.getID()) {
   case WindowEvent.WINDOW_OPENED:
     showLine("WINDOW_OPENED");
     break;
   case WindowEvent.WINDOW_CLOSED:
     showLine("WINDOW_CLOSED");
     break;
   case WindowEvent.WINDOW_CLOSING:
     showLine("WINDOW_CLOSING");
     break;
   case WindowEvent.WINDOW_ICONIFIED:
     showLine("WINDOW_ICONIFIED");
     break;
   case WindowEvent.WINDOW_DEICONIFIED:
     showLine("WINDOW_DEICONIFIED");
     break;
   case WindowEvent.WINDOW_ACTIVATED:
     showLine("WINDOW_ACTIVATED");
     break;
   case WindowEvent.WINDOW_DEACTIVATED:
     showLine("WINDOW_DEACTIVATED");
     break;
   }
   // If the user requested a window close, quit the program.
   // But first display a message, force it to be visible, and make
   // sure the user has time to read it.
   if (e.getID() == WindowEvent.WINDOW_CLOSING) {
     showLine("WINDOW_CLOSING event received.");
     showLine("Application will exit in 5 seconds");
     // Force the updates to appear now.
     update(this.getGraphics());
     // Wait five seconds
     try {
       Thread.sleep(5000);
     } catch (InterruptedException ie) {
       ;
     }
     // Exit now
     System.exit(0);
   }
 }
 /** The list of lines to display in the window */
 protected Vector lines = new Vector();
 /** Add a new line to the list of lines, and request redisplay */
 protected void showLine(String s) {
   if (lines.size() == 20)
     lines.removeElementAt(0);
   lines.addElement(s);
   repaint();
 }
 /** This method repaints the text in the window */
 public void paintComponent(Graphics g) {
   for (int i = 0; i < lines.size(); i++)
     g.drawString((String) lines.elementAt(i), 20, i * 16 + 50);
 }
 public boolean isOpaque() {
   return false;
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e) {
       System.exit(0);
     }
   });
   frame.getContentPane().add(new EventTestPane(), BorderLayout.CENTER);
   // Finally, set the size of the main window, and pop it up.
   frame.setSize(600, 400);
   frame.setVisible(true);
 }

}


 </source>