169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalpackage sample.duplicate;
269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalimport java.applet.*;
469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalimport java.awt.*;
569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalimport java.awt.event.*;
669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigalpublic class Viewer extends Applet
869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    implements MouseListener, ActionListener, WindowListener
969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal{
1069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private static final Color[] colorList = {
1169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	Color.orange, Color.pink, Color.green, Color.blue };
1269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
1369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private Ball ball;
1469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    private int colorNo;
1569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
1669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void init() {
1769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	colorNo = 0;
1869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	Button b = new Button("change");
1969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	b.addActionListener(this);
2069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	add(b);
2169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
2269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	addMouseListener(this);
2369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
2469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
2569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void start() {
2669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	ball = new Ball(50, 50);
2769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	ball.changeColor(colorList[0]);
2869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
2969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
3069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void paint(Graphics g) {
3169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	ball.paint(g);
3269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
3369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
3469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void mouseClicked(MouseEvent ev) {
3569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	ball.move(ev.getX(), ev.getY());
3669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	repaint();
3769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
3869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
3969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void mouseEntered(MouseEvent ev) {}
4069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
4169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void mouseExited(MouseEvent ev) {}
4269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
4369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void mousePressed(MouseEvent ev) {}
4469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
4569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void mouseReleased(MouseEvent ev) {}
4669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
4769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void actionPerformed(ActionEvent e) {
4869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	ball.changeColor(colorList[++colorNo % colorList.length]);
4969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	repaint();
5069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
5169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
5269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void windowOpened(WindowEvent e) {}
5369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
5469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void windowClosing(WindowEvent e) {
5569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	System.exit(0);
5669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
5769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
5869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void windowClosed(WindowEvent e) {}
5969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
6069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void windowIconified(WindowEvent e) {}
6169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
6269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void windowDeiconified(WindowEvent e) {}
6369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
6469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void windowActivated(WindowEvent e) {}
6569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
6669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public void windowDeactivated(WindowEvent e) {}
6769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal
6869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    public static void main(String[] args) {
6969e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	Frame f = new Frame("Viewer");
7069e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	Viewer view = new Viewer();
7169e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	f.addWindowListener(view);
7269e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	f.add(view);
7369e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	f.setSize(300, 300);
7469e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	view.init();
7569e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	view.start();
7669e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal	f.setVisible(true);
7769e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal    }
7869e17611504376e4d4603925f8528dfc890fd2c6Luis Sigal}
79