Source of PlayBalloonApplicationWA.java


  1: // PlayBalloonApplicationWA.java
  2: // The PlayBalloon AWT application example again, with WindowAdapter

  4: import java.awt.*;
  5: import java.awt.event.*;

  7: public class PlayBalloonApplicationWA
  8:     extends Frame
  9:     implements ActionListener //, WindowListener  <-- Note!
 10: {
 11:     private Button grow, shrink;
 12:     private Balloon myBalloon;

 14:     public static void main(String[] args)
 15:     {
 16:         PlayBalloonApplicationWA app = new PlayBalloonApplicationWA();
 17:         app.setSize(200, 200);
 18:         app.setVisible(true);
 19:     }


 22:     public  PlayBalloonApplicationWA()
 23:     {
 24:         setTitle("Balloon");
 25:         setLayout(new FlowLayout());

 27:         grow   = new Button("Grow");
 28:         shrink = new Button("Shrink");
 29:         grow.addActionListener(this);
 30:         shrink.addActionListener(this);
 31:         add(grow);
 32:         add(shrink);

 34:         /*WindowAdapter wa = new WindowAdapter()
 35:         {// This is "an anonymous inner class"
 36:             public void windowClosing(WindowEvent e)
 37:             {
 38:                 System.exit(0);
 39:             }
 40:         };
 41:         addWindowListener(wa);*/

 43:         // You can even do it this way ...
 44:         addWindowListener(new WindowAdapter()
 45:         {
 46:             public void windowClosing(WindowEvent e)
 47:             {
 48:                 System.exit(0);
 49:             }
 50:         });


 53:         myBalloon = new Balloon(40, 80, 80);
 54:     }

 56: 
 57:     public void actionPerformed(ActionEvent event)
 58:     {
 59:         if (event.getSource() == grow)
 60:             myBalloon.changeSize(5);
 61:         if (event.getSource() == shrink)
 62:             myBalloon.changeSize(-5);
 63:         repaint();
 64:     }


 67:     public void paint(Graphics g)
 68:     {
 69:         myBalloon.display(g);
 70:     }
 71: }


 74: class Balloon
 75: {
 76:     private int diameter;
 77:     private int xCoord, yCoord;

 79:     Balloon(int initialDiameter, int initialX, int initialY)
 80:     {
 81:         diameter = initialDiameter;
 82:         xCoord = initialX;
 83:         yCoord = initialY;
 84:     }

 86:     public void changeSize(int change)
 87:     {
 88:         diameter = diameter+change;
 89:     }

 91:     public void display (Graphics g)
 92:     {
 93:         g.drawOval(xCoord, yCoord, diameter, diameter);
 94:     }
 95: }