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