// Scott DeRuiter 3/6/2003 // HearMouseMotion.java // This is a simple example of implementing a MouseMotionListener in // a Swing Applet. // 3/13/2013 Greenstein: Changed from applet to JFrame import java.awt.*; import java.awt.event.*; import javax.swing.*; public class HearMouseMotion implements MouseMotionListener { private int xpos, ypos, rect1xco, rect1yco, rect1width, rect1height; private boolean rect1Active, initialdraw; private JFrame frame; private MyPanel canvas; public HearMouseMotion () { xpos = ypos = 0; rect1xco = rect1yco = 20; rect1width = 100; rect1height = 60; rect1Active = false; initialdraw = true; } public static void main(String[] args) { HearMouseMotion hmm = new HearMouseMotion(); hmm.Run(); } public void Run() { // Create a frame to hold everything frame = new JFrame ("Hear Mouse"); frame.setSize(500, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //frame.setBackground(Color.black); // only needed if frame is larger than panel // Define panel to draw on canvas = new MyPanel(); // create a panel to draw on canvas.setBackground(Color.lightGray); canvas.addMouseMotionListener(this); // connects the MouseMotionListerner to the panel window // Put frame together frame.getContentPane().add(canvas); // puts panel on frame frame.setVisible(true); } class MyPanel extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); if ( rect1Active ) g.setColor ( Color.blue ); else g.setColor ( Color.cyan ); g.fillRect ( rect1xco, rect1yco, rect1width, rect1height ); g.setColor ( Color.red ); if ( !initialdraw ) g.drawString ( "(" + xpos + "," + ypos + ")", xpos, ypos ); } } public void mouseMoved ( MouseEvent e ) { xpos = e.getX(); ypos = e.getY(); if (xpos > rect1xco && xpos < rect1xco + rect1width && ypos > rect1yco && ypos < rect1yco + rect1height ) rect1Active = true; else rect1Active = false; initialdraw = false; canvas.repaint(); } public void mouseDragged ( MouseEvent e ) {} }