import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
/**
* Canvas object
*/
public class Canvas extends JPanel implements MouseListener {
private Main parent; //*1 Save parent for use in callback
public Canvas (Main parent) {
this.parent = parent; //*1
setBorder (new LineBorder(Color.BLUE));
addMouseListener (this);
}
/** Tell parent to do the job */
public void paintComponent (Graphics g) { //*2 Catch the callback
super.paintComponent(g);
parent.drawSquares (g); //*3 And call parent to do the job
}
/** MouseListener callbacks */
public void mousePressed (MouseEvent event) {
System.out.println ("Mouse down at " + event.getPoint());
}
public void mouseClicked (MouseEvent event) {}
public void mouseReleased (MouseEvent event) {}
public void mouseEntered (MouseEvent event) {}
public void mouseExited (MouseEvent event) {}
}