<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing_Event%2FMouse_Event</id>
		<title>Java Tutorial/Swing Event/Mouse Event - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing_Event%2FMouse_Event"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing_Event/Mouse_Event&amp;action=history"/>
		<updated>2026-04-22T01:29:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing_Event/Mouse_Event&amp;diff=2877&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing_Event/Mouse_Event&amp;diff=2877&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing_Event/Mouse_Event&amp;diff=2878&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing_Event/Mouse_Event&amp;diff=2878&amp;oldid=prev"/>
				<updated>2010-05-31T15:18:45Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Detecting Double and Triple Clicks ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTextField component = new JTextField();&lt;br /&gt;
    component.addMouseListener(new MyMouseListener());&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
    component.addMouseListener(new MyMouseListener());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyMouseListener extends MouseAdapter {&lt;br /&gt;
  public void mouseClicked(MouseEvent evt) {&lt;br /&gt;
    if (evt.getClickCount() == 3) {&lt;br /&gt;
      System.out.println(&amp;quot;triple-click&amp;quot;);&lt;br /&gt;
    } else if (evt.getClickCount() == 2) {&lt;br /&gt;
      System.out.println(&amp;quot;double-click&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Handling Mouse Clicks ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTextField component = new JTextField();&lt;br /&gt;
    component.addMouseListener(new MyMouseListener());&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyMouseListener extends MouseAdapter {&lt;br /&gt;
  public void mouseClicked(MouseEvent evt) {&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON1_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;left&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON2_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;middle&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON3_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;right&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  InputEvent.BUTTON1_MASK (for left mouse button) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTextField component = new JTextField();&lt;br /&gt;
    component.addMouseListener(new MyMouseListener());&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyMouseListener extends MouseAdapter {&lt;br /&gt;
  public void mouseClicked(MouseEvent evt) {&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON1_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;left&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON2_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;middle&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON3_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;right&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  InputEvent.BUTTON2_MASK (for middle mouse button) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTextField component = new JTextField();&lt;br /&gt;
    component.addMouseListener(new MyMouseListener());&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyMouseListener extends MouseAdapter {&lt;br /&gt;
  public void mouseClicked(MouseEvent evt) {&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON1_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;left&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON2_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;middle&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON3_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;right&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  InputEvent.BUTTON3_MASK (for right mouse button) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTextField component = new JTextField();&lt;br /&gt;
    component.addMouseListener(new MyMouseListener());&lt;br /&gt;
    JFrame f = new JFrame();&lt;br /&gt;
    f.add(component);&lt;br /&gt;
    f.setSize(300, 300);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyMouseListener extends MouseAdapter {&lt;br /&gt;
  public void mouseClicked(MouseEvent evt) {&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON1_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;left&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON2_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;middle&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
    if ((evt.getModifiers() &amp;amp; InputEvent.BUTTON3_MASK) != 0) {&lt;br /&gt;
      System.out.println(&amp;quot;right&amp;quot; + (evt.getPoint()));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Mouse event popup menu triggered ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
public class Test extends JFrame {&lt;br /&gt;
  JPopupMenu menu = new JPopupMenu(&amp;quot;Popup&amp;quot;);&lt;br /&gt;
  class MyLabel extends JLabel {&lt;br /&gt;
    public MyLabel(String text) {&lt;br /&gt;
      super(text);&lt;br /&gt;
      addMouseListener(new PopupTriggerListener());&lt;br /&gt;
    }&lt;br /&gt;
    class PopupTriggerListener extends MouseAdapter {&lt;br /&gt;
      public void mousePressed(MouseEvent ev) {&lt;br /&gt;
        if (ev.isPopupTrigger()) {&lt;br /&gt;
          menu.show(ev.getComponent(), ev.getX(), ev.getY());&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseReleased(MouseEvent ev) {&lt;br /&gt;
        if (ev.isPopupTrigger()) {&lt;br /&gt;
          menu.show(ev.getComponent(), ev.getX(), ev.getY());&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseClicked(MouseEvent ev) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  JLabel label = new MyLabel(&amp;quot;right-click&amp;quot;);&lt;br /&gt;
  public Test() {&lt;br /&gt;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JMenuItem item = new JMenuItem(&amp;quot;Test1&amp;quot;);&lt;br /&gt;
    item.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Menu item Test1&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    menu.add(item);&lt;br /&gt;
    item = new JMenuItem(&amp;quot;Test2&amp;quot;);&lt;br /&gt;
    item.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Menu item Test2&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    menu.add(item);&lt;br /&gt;
    getContentPane().add(label);&lt;br /&gt;
    pack();&lt;br /&gt;
    setSize(300, 100);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new Test().setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Right click to trigger the popup menu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPopupMenu;&lt;br /&gt;
public class Test extends JFrame {&lt;br /&gt;
  JPopupMenu menu = new JPopupMenu(&amp;quot;Popup&amp;quot;);&lt;br /&gt;
  class MyLabel extends JLabel {&lt;br /&gt;
    public MyLabel(String text) {&lt;br /&gt;
      super(text);&lt;br /&gt;
      addMouseListener(new PopupTriggerListener());&lt;br /&gt;
    }&lt;br /&gt;
    class PopupTriggerListener extends MouseAdapter {&lt;br /&gt;
      public void mousePressed(MouseEvent ev) {&lt;br /&gt;
        if (ev.isPopupTrigger()) {&lt;br /&gt;
          menu.show(ev.getComponent(), ev.getX(), ev.getY());&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseReleased(MouseEvent ev) {&lt;br /&gt;
        if (ev.isPopupTrigger()) {&lt;br /&gt;
          menu.show(ev.getComponent(), ev.getX(), ev.getY());&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      public void mouseClicked(MouseEvent ev) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  JLabel label = new MyLabel(&amp;quot;right-click&amp;quot;);&lt;br /&gt;
  public Test() {&lt;br /&gt;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JMenuItem item = new JMenuItem(&amp;quot;Test1&amp;quot;);&lt;br /&gt;
    item.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Menu item Test1&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    menu.add(item);&lt;br /&gt;
    item = new JMenuItem(&amp;quot;Test2&amp;quot;);&lt;br /&gt;
    item.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Menu item Test2&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    menu.add(item);&lt;br /&gt;
    getContentPane().add(label);&lt;br /&gt;
    pack();&lt;br /&gt;
    setSize(300, 100);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new Test().setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Uses a subclass of MouseInputAdapter to listen to mouse events and mouse-motion events ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Uses a subclass of MouseInputAdapter to listen to mouse events and mouse-motion events &lt;br /&gt;
on the root pane&amp;quot;s glass pane. Redispatches the events to underlying components.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 *&lt;br /&gt;
 * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Sun grants you (&amp;quot;Licensee&amp;quot;) a non-exclusive, royalty free, license to use,&lt;br /&gt;
 * modify and redistribute this software in source and binary code form,&lt;br /&gt;
 * provided that i) this copyright notice and license appear on all copies of&lt;br /&gt;
 * the software; and ii) Licensee does not utilize the software in a manner&lt;br /&gt;
 * which is disparaging to Sun.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is provided &amp;quot;AS IS,&amp;quot; without a warranty of any kind. ALL&lt;br /&gt;
 * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY&lt;br /&gt;
 * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR&lt;br /&gt;
 * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE&lt;br /&gt;
 * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING&lt;br /&gt;
 * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS&lt;br /&gt;
 * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,&lt;br /&gt;
 * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER&lt;br /&gt;
 * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF&lt;br /&gt;
 * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE&lt;br /&gt;
 * POSSIBILITY OF SUCH DAMAGES.&lt;br /&gt;
 *&lt;br /&gt;
 * This software is not designed or intended for use in on-line control of&lt;br /&gt;
 * aircraft, air traffic, aircraft navigation or aircraft communications; or in&lt;br /&gt;
 * the design, construction, operation or maintenance of any nuclear&lt;br /&gt;
 * facility. Licensee represents and warrants that it will not use or&lt;br /&gt;
 * redistribute the Software for such purposes.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.ItemEvent;&lt;br /&gt;
import java.awt.event.ItemListener;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.AbstractButton;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.SwingUtilities;&lt;br /&gt;
import javax.swing.event.MouseInputAdapter;&lt;br /&gt;
/** A 1.4 application that requires no other files. */&lt;br /&gt;
public class GlassPaneDemo {&lt;br /&gt;
  static private MyGlassPane myGlassPane;&lt;br /&gt;
  /**&lt;br /&gt;
   * Create the GUI and show it. For thread safety, this method should be&lt;br /&gt;
   * invoked from the event-dispatching thread.&lt;br /&gt;
   */&lt;br /&gt;
  private static void createAndShowGUI() {&lt;br /&gt;
    // Create and set up the window.&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;GlassPaneDemo&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    // Start creating and adding components.&lt;br /&gt;
    JCheckBox changeButton = new JCheckBox(&amp;quot;Glass pane \&amp;quot;visible\&amp;quot;&amp;quot;);&lt;br /&gt;
    changeButton.setSelected(false);&lt;br /&gt;
    // Set up the content pane, where the &amp;quot;main GUI&amp;quot; lives.&lt;br /&gt;
    Container contentPane = frame.getContentPane();&lt;br /&gt;
    contentPane.setLayout(new FlowLayout());&lt;br /&gt;
    contentPane.add(changeButton);&lt;br /&gt;
    contentPane.add(new JButton(&amp;quot;Button 1&amp;quot;));&lt;br /&gt;
    contentPane.add(new JButton(&amp;quot;Button 2&amp;quot;));&lt;br /&gt;
    // Set up the menu bar, which appears above the content pane.&lt;br /&gt;
    JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;Menu&amp;quot;);&lt;br /&gt;
    menu.add(new JMenuItem(&amp;quot;Do nothing&amp;quot;));&lt;br /&gt;
    menuBar.add(menu);&lt;br /&gt;
    frame.setJMenuBar(menuBar);&lt;br /&gt;
    // Set up the glass pane, which appears over both menu bar&lt;br /&gt;
    // and content pane and is an item listener on the change&lt;br /&gt;
    // button.&lt;br /&gt;
    myGlassPane = new MyGlassPane(changeButton, menuBar, frame.getContentPane());&lt;br /&gt;
    changeButton.addItemListener(myGlassPane);&lt;br /&gt;
    frame.setGlassPane(myGlassPane);&lt;br /&gt;
    // Show the window.&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // Schedule a job for the event-dispatching thread:&lt;br /&gt;
    // creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
    javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        createAndShowGUI();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**&lt;br /&gt;
 * We have to provide our own glass pane so that it can paint.&lt;br /&gt;
 */&lt;br /&gt;
class MyGlassPane extends JComponent implements ItemListener {&lt;br /&gt;
  Point point;&lt;br /&gt;
  // React to change button clicks.&lt;br /&gt;
  public void itemStateChanged(ItemEvent e) {&lt;br /&gt;
    setVisible(e.getStateChange() == ItemEvent.SELECTED);&lt;br /&gt;
  }&lt;br /&gt;
  protected void paintComponent(Graphics g) {&lt;br /&gt;
    if (point != null) {&lt;br /&gt;
      g.setColor(Color.red);&lt;br /&gt;
      g.fillOval(point.x - 10, point.y - 10, 20, 20);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void setPoint(Point p) {&lt;br /&gt;
    point = p;&lt;br /&gt;
  }&lt;br /&gt;
  public MyGlassPane(AbstractButton aButton, JMenuBar menuBar, Container contentPane) {&lt;br /&gt;
    CBListener listener = new CBListener(aButton, menuBar, this, contentPane);&lt;br /&gt;
    addMouseListener(listener);&lt;br /&gt;
    addMouseMotionListener(listener);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/**&lt;br /&gt;
 * Listen for all events that our check box is likely to be interested in.&lt;br /&gt;
 * Redispatch them to the check box.&lt;br /&gt;
 */&lt;br /&gt;
class CBListener extends MouseInputAdapter {&lt;br /&gt;
  Toolkit toolkit;&lt;br /&gt;
  Component liveButton;&lt;br /&gt;
  JMenuBar menuBar;&lt;br /&gt;
  MyGlassPane glassPane;&lt;br /&gt;
  Container contentPane;&lt;br /&gt;
  public CBListener(Component liveButton, JMenuBar menuBar, MyGlassPane glassPane,&lt;br /&gt;
      Container contentPane) {&lt;br /&gt;
    toolkit = Toolkit.getDefaultToolkit();&lt;br /&gt;
    this.liveButton = liveButton;&lt;br /&gt;
    this.menuBar = menuBar;&lt;br /&gt;
    this.glassPane = glassPane;&lt;br /&gt;
    this.contentPane = contentPane;&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseMoved(MouseEvent e) {&lt;br /&gt;
    redispatchMouseEvent(e, false);&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseDragged(MouseEvent e) {&lt;br /&gt;
    redispatchMouseEvent(e, false);&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseClicked(MouseEvent e) {&lt;br /&gt;
    redispatchMouseEvent(e, false);&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseEntered(MouseEvent e) {&lt;br /&gt;
    redispatchMouseEvent(e, false);&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseExited(MouseEvent e) {&lt;br /&gt;
    redispatchMouseEvent(e, false);&lt;br /&gt;
  }&lt;br /&gt;
  public void mousePressed(MouseEvent e) {&lt;br /&gt;
    redispatchMouseEvent(e, false);&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseReleased(MouseEvent e) {&lt;br /&gt;
    redispatchMouseEvent(e, true);&lt;br /&gt;
  }&lt;br /&gt;
  // A more finished version of this method would&lt;br /&gt;
  // handle mouse-dragged events specially.&lt;br /&gt;
  private void redispatchMouseEvent(MouseEvent e, boolean repaint) {&lt;br /&gt;
    Point glassPanePoint = e.getPoint();&lt;br /&gt;
    Container container = contentPane;&lt;br /&gt;
    Point containerPoint = SwingUtilities.convertPoint(glassPane, glassPanePoint, contentPane);&lt;br /&gt;
    if (containerPoint.y &amp;lt; 0) { // we&amp;quot;re not in the content pane&lt;br /&gt;
      if (containerPoint.y + menuBar.getHeight() &amp;gt;= 0) {&lt;br /&gt;
        // The mouse event is over the menu bar.&lt;br /&gt;
        // Could handle specially.&lt;br /&gt;
      } else {&lt;br /&gt;
        // The mouse event is over non-system window&lt;br /&gt;
        // decorations, such as the ones provided by&lt;br /&gt;
        // the Java look and feel.&lt;br /&gt;
        // Could handle specially.&lt;br /&gt;
      }&lt;br /&gt;
    } else {&lt;br /&gt;
      // The mouse event is probably over the content pane.&lt;br /&gt;
      // Find out exactly which component it&amp;quot;s over.&lt;br /&gt;
      Component component = SwingUtilities.getDeepestComponentAt(container, containerPoint.x,&lt;br /&gt;
          containerPoint.y);&lt;br /&gt;
      if ((component != null) &amp;amp;&amp;amp; (component.equals(liveButton))) {&lt;br /&gt;
        // Forward events over the check box.&lt;br /&gt;
        Point componentPoint = SwingUtilities.convertPoint(glassPane, glassPanePoint, component);&lt;br /&gt;
        component.dispatchEvent(new MouseEvent(component, e.getID(), e.getWhen(), e.getModifiers(),&lt;br /&gt;
            componentPoint.x, componentPoint.y, e.getClickCount(), e.isPopupTrigger()));&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    // Update the glass pane if requested.&lt;br /&gt;
    if (repaint) {&lt;br /&gt;
      glassPane.setPoint(glassPanePoint);&lt;br /&gt;
      glassPane.repaint();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using SwingUtilities for Mouse Button Identification ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
SwingUtilities.isLeftMouseButton(MouseEvent mouseEvent)&lt;br /&gt;
    SwingUtilities.isMiddleMouseButton(MouseEvent mouseEvent)&lt;br /&gt;
    SwingUtilities.isRightMouseButton(MouseEvent mouseEvent)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>