MouseTracker.java

See


MouseTracker.java

// MouseTracker.java
// Demonstrating mouse events.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;



class MouseTrackerPanel extends JPanel
             implements MouseListener, MouseMotionListener {
   JLabel statusBar;

   public MouseTrackerPanel()
   {
       statusBar = new JLabel();
    
      // application listens to its own mouse events
      addMouseListener( this );
      addMouseMotionListener( this );
   }

   // MouseListener event handlers
   public void mouseClicked( MouseEvent e )
   {
      statusBar.setText( "Clicked at [" + e.getX() +
                         ", " + e.getY() + "]" );
   }

   public void mousePressed( MouseEvent e )
   {
      statusBar.setText( "Pressed at [" + e.getX() +
                         ", " + e.getY() + "]" );
   }

   public void mouseReleased( MouseEvent e )
   {
      statusBar.setText( "Released at [" + e.getX() +
                         ", " + e.getY() + "]" );
   }

   public void mouseEntered( MouseEvent e )
   {
      statusBar.setText( "Mouse in window" );
   }

   public void mouseExited( MouseEvent e )
   {
      statusBar.setText( "Mouse outside window" );
   }

   // MouseMotionListener event handlers
   public void mouseDragged( MouseEvent e )
   {
      statusBar.setText( "Dragged at [" + e.getX() +
                         ", " + e.getY() + "]" );
   }

   public void mouseMoved( MouseEvent e )
   {
       statusBar.setText( "Moved at [" + e.getX() +
			  ", " + e.getY() + "]" );
   }
}

class mainThread implements Runnable
{
    public void run()
    {
	MouseTrackerPanel panel = new MouseTrackerPanel();
	JFrame frame = new JFrame("Demonstrating Mouse Events" );
	frame.add(panel);
	frame.add(panel.statusBar,BorderLayout.SOUTH);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setSize( 380, 160 );
	frame.setVisible(true);
    }
}


public class MouseTracker
{
   public static void main( String args[] )
   {
       EventQueue.invokeLater(new mainThread());
   }
}


Maintained by John Loomis, updated Mon Feb 25 19:51:15 2019