Zwar keine Rectangle, aber hier mal ein Beispiel mit JPanels.
[code=Java]
public class WindowFrame extends JFrame implements MouseListener {
private static final long serialVersionUID = 1L;
public WindowFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
init();
setSize(800,600);
}
/**
* @param args
*/
public static void main(String[] args) {
new WindowFrame().setVisible(true);
}
private void init() {
int nRows = 5;
int nCols = 5;
setLayout(new GridLayout(nRows, nCols));
for(int i = 0; i < nRows; i++) {
for(int j = 0; j < nCols; j++) {
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
panel.setForeground(Color.WHITE);
panel.setOpaque(true);
panel.setName("x="+j+", y="+i);
panel.add(new JLabel(panel.getName()));
panel.setSize(50, 50);
panel.addMouseListener(this);
add(panel);
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouseClicked()");
((JPanel)e.getSource()).setBackground(Color.BLUE);
}
@Override
public void mousePressed(MouseEvent e) {
System.out.println("mousePressed()");
((JPanel)e.getSource()).setBackground(Color.ORANGE);
}
@Override
public void mouseReleased(MouseEvent e) {
System.out.println("mouseReleased()");
((JPanel)e.getSource()).setBackground(Color.LIGHT_GRAY);
}
@Override
public void mouseEntered(MouseEvent e) {
System.out.println("mouseEntered()");
((JPanel)e.getSource()).setBackground(Color.CYAN);
}
@Override
public void mouseExited(MouseEvent e) {
System.out.println("mouseExited()");
((JPanel)e.getSource()).setBackground(Color.GREEN);
}
}
[/code]