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