import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
public class Canvas extends JPanel implements MouseListener { //*1 Subclass MouseListener, override its methods
Canvas () {
addMouseListener (this); //*2 Sign us up for our own mouse events
}
// This is the draw callback
public void paintComponent (Graphics g) {
super.paintComponent(g);
g.drawLine (50, 50, 100, 50);
}
// Listener callback
public void mousePressed (MouseEvent event) { //*3 Receive mouse event
System.out.println ("Mouse down at " + event.getPoint()); //*3
}
// MouseListener defines all of these, so we must supply them //*4 Must provide these cause abstract class
public void mouseReleased (MouseEvent event) {} //*4
public void mouseClicked (MouseEvent event) {} //*4
public void mouseEntered (MouseEvent event) {} //*4
public void mouseExited (MouseEvent event) {} //*4
}