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