1*f1fbf3c2SXin Li package sample.duplicate; 2*f1fbf3c2SXin Li 3*f1fbf3c2SXin Li import java.applet.*; 4*f1fbf3c2SXin Li import java.awt.*; 5*f1fbf3c2SXin Li import java.awt.event.*; 6*f1fbf3c2SXin Li 7*f1fbf3c2SXin Li public class Viewer extends Applet 8*f1fbf3c2SXin Li implements MouseListener, ActionListener, WindowListener 9*f1fbf3c2SXin Li { 10*f1fbf3c2SXin Li private static final Color[] colorList = { 11*f1fbf3c2SXin Li Color.orange, Color.pink, Color.green, Color.blue }; 12*f1fbf3c2SXin Li 13*f1fbf3c2SXin Li private Ball ball; 14*f1fbf3c2SXin Li private int colorNo; 15*f1fbf3c2SXin Li init()16*f1fbf3c2SXin Li public void init() { 17*f1fbf3c2SXin Li colorNo = 0; 18*f1fbf3c2SXin Li Button b = new Button("change"); 19*f1fbf3c2SXin Li b.addActionListener(this); 20*f1fbf3c2SXin Li add(b); 21*f1fbf3c2SXin Li 22*f1fbf3c2SXin Li addMouseListener(this); 23*f1fbf3c2SXin Li } 24*f1fbf3c2SXin Li start()25*f1fbf3c2SXin Li public void start() { 26*f1fbf3c2SXin Li ball = new Ball(50, 50); 27*f1fbf3c2SXin Li ball.changeColor(colorList[0]); 28*f1fbf3c2SXin Li } 29*f1fbf3c2SXin Li paint(Graphics g)30*f1fbf3c2SXin Li public void paint(Graphics g) { 31*f1fbf3c2SXin Li ball.paint(g); 32*f1fbf3c2SXin Li } 33*f1fbf3c2SXin Li mouseClicked(MouseEvent ev)34*f1fbf3c2SXin Li public void mouseClicked(MouseEvent ev) { 35*f1fbf3c2SXin Li ball.move(ev.getX(), ev.getY()); 36*f1fbf3c2SXin Li repaint(); 37*f1fbf3c2SXin Li } 38*f1fbf3c2SXin Li mouseEntered(MouseEvent ev)39*f1fbf3c2SXin Li public void mouseEntered(MouseEvent ev) {} 40*f1fbf3c2SXin Li mouseExited(MouseEvent ev)41*f1fbf3c2SXin Li public void mouseExited(MouseEvent ev) {} 42*f1fbf3c2SXin Li mousePressed(MouseEvent ev)43*f1fbf3c2SXin Li public void mousePressed(MouseEvent ev) {} 44*f1fbf3c2SXin Li mouseReleased(MouseEvent ev)45*f1fbf3c2SXin Li public void mouseReleased(MouseEvent ev) {} 46*f1fbf3c2SXin Li actionPerformed(ActionEvent e)47*f1fbf3c2SXin Li public void actionPerformed(ActionEvent e) { 48*f1fbf3c2SXin Li ball.changeColor(colorList[++colorNo % colorList.length]); 49*f1fbf3c2SXin Li repaint(); 50*f1fbf3c2SXin Li } 51*f1fbf3c2SXin Li windowOpened(WindowEvent e)52*f1fbf3c2SXin Li public void windowOpened(WindowEvent e) {} 53*f1fbf3c2SXin Li windowClosing(WindowEvent e)54*f1fbf3c2SXin Li public void windowClosing(WindowEvent e) { 55*f1fbf3c2SXin Li System.exit(0); 56*f1fbf3c2SXin Li } 57*f1fbf3c2SXin Li windowClosed(WindowEvent e)58*f1fbf3c2SXin Li public void windowClosed(WindowEvent e) {} 59*f1fbf3c2SXin Li windowIconified(WindowEvent e)60*f1fbf3c2SXin Li public void windowIconified(WindowEvent e) {} 61*f1fbf3c2SXin Li windowDeiconified(WindowEvent e)62*f1fbf3c2SXin Li public void windowDeiconified(WindowEvent e) {} 63*f1fbf3c2SXin Li windowActivated(WindowEvent e)64*f1fbf3c2SXin Li public void windowActivated(WindowEvent e) {} 65*f1fbf3c2SXin Li windowDeactivated(WindowEvent e)66*f1fbf3c2SXin Li public void windowDeactivated(WindowEvent e) {} 67*f1fbf3c2SXin Li main(String[] args)68*f1fbf3c2SXin Li public static void main(String[] args) { 69*f1fbf3c2SXin Li Frame f = new Frame("Viewer"); 70*f1fbf3c2SXin Li Viewer view = new Viewer(); 71*f1fbf3c2SXin Li f.addWindowListener(view); 72*f1fbf3c2SXin Li f.add(view); 73*f1fbf3c2SXin Li f.setSize(300, 300); 74*f1fbf3c2SXin Li view.init(); 75*f1fbf3c2SXin Li view.start(); 76*f1fbf3c2SXin Li f.setVisible(true); 77*f1fbf3c2SXin Li } 78*f1fbf3c2SXin Li } 79