169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalpackage sample.duplicate;
269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalimport java.awt.Graphics;
469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalimport java.awt.Color;
569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalpublic class Ball {
769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private int x, y;
869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private Color color;
969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private int radius = 30;
1069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private boolean isBackup = false;
1169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
1269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public Ball(int x, int y) {
1369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	move(x, y);
1469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	changeColor(Color.orange);
1569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
1669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
1769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    // This constructor is for a backup object.
1869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public Ball(Ball b) {
1969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	isBackup = true;
2069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
2169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
2269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    // Adjust the position so that the backup object is visible.
2369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private void adjust() {
2469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	if (isBackup) {
2569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	    this.x += 50;
2669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	    this.y += 50;
2769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	}
2869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
2969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
3069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void paint(Graphics g) {
3169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	g.setColor(color);
3269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	g.fillOval(x, y, radius, radius);
3369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
3469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
3569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void move(int x, int y) {
3669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	this.x = x;
3769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	this.y = y;
3869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	adjust();
3969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
4069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
4169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void changeColor(Color color) {
4269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	this.color = color;
4369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
4469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal}
45