According to the documentation of addMouseListener() you add an implementation of MouseListener
to a GObject
, GRect
in particular. Here is an example that adds an anonymous listener:
rect.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
});
You can also use MouseAdapter
that already implements all methods of MouseListener
, ie:
rect.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
});
Or a non anonymous case:
class CustomListener extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
CustomListener listener = new CustomListener();
rect.addMouseListener(listener);
Here is a simple demo program that changes GRect's color on click:
import acm.program.*;
import acm.util.RandomGenerator;
import acm.graphics.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class TestRect extends GraphicsProgram {
private static RandomGenerator rand = new RandomGenerator();
public void run() {
final GRect rect = new GRect(10, 10, 100, 100);
rect.setFilled(true);
rect.setColor(Color.RED);
add(rect);
rect.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
rect.setColor(rand.nextColor());
}
});
}
}