Differences between revisions 4 and 5
Revision 4 as of 2005-04-08 12:13:09
Size: 4602
Editor: dyn-176115
Comment:
Revision 5 as of 2005-04-08 12:13:32
Size: 4538
Editor: dyn-176115
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Dc222Home/WorkShops/BallListener.java
   1 package nl.tue.id.dps.swing;
   2 
   3 /**
   4  * <p>Title: ITML</p>
   5  *
   6  * <p>Description: Distributed Media Extension to X-Smiles</p>
   7  *
   8  * <p>Copyright: Copyright (c) 2004</p>
   9  *
  10  * <p>Company: ID, TU/e</p>
  11  *
  12  * @author HU, Jun
  13  * @version 1.0
  14  */
  15 public interface BallListener {
  16   public void becomeWarm();
  17   public void becomeCold();
  18   public void becomeWarmer();
  19   public void becomeWarmest();
  20 }
  21 
  22 }}}
  23 
  24 ==== BallFrame ====
  25 ----
  26 {{{#!java
  27 
  28 package nl.tue.id.dps.swing;
  29 
  30 import java.awt.*;
  31 import javax.swing.*;
  32 import java.awt.event.MouseEvent;
  33 import java.awt.event.MouseAdapter;
  34 import java.util.Vector;
  35 import java.util.Iterator;
  36 
  37 /**
  38  * <p>Title: ITML</p>
  39  *
  40  * <p>Description: Distributed Media Extension to X-Smiles</p>
  41  *
  42  * <p>Copyright: Copyright (c) 2004</p>
  43  *
  44  * <p>Company: ID, TU/e</p>
  45  *
  46  * @author HU, Jun
  47  * @version 1.0
  48  */
  49 public class BallFrame
  50     extends JFrame {
  51   TimeCounter counter = new TimeCounter();
  52   BorderLayout borderLayout1 = new BorderLayout();
  53   JPanel ballPanel = new JPanel();
  54   Vector listeners = new Vector();
  55 
  56   public void addBallListener(BallListener listener){
  57     listeners.add(listener);
  58   }
  59 
  60   public void removeBallListener(BallListener listener){
  61     listeners.remove(listener);
  62   }
  63 
  64   public static void main(String arg[]){
  65     BallFrame ball = new BallFrame();
  66     ball.pack();
  67     ball.show();
  68     ball.cold();
  69   }
  70 
  71   public BallFrame() {
  72     try {
  73       jbInit();
  74     }
  75     catch (Exception exception) {
  76       exception.printStackTrace();
  77     }
  78     counter.start();
  79   }
  80 
  81   private void jbInit() throws Exception {
  82     getContentPane().setLayout(borderLayout1);
  83     ballPanel.addMouseListener(new BallFrame_ballPanel_mouseAdapter(this));
  84     this.getContentPane().add(ballPanel, java.awt.BorderLayout.CENTER);
  85     ballPanel.setMinimumSize(new Dimension(640, 480));
  86     ballPanel.setPreferredSize(new Dimension(640, 480));
  87   }
  88 
  89   public void setBallColor(Color c){
  90     ballPanel.setBackground(c);
  91   }
  92 
  93   public void ballPanel_mousePressed(MouseEvent e) {
  94     counter.startCounting();
  95 
  96   }
  97 
  98   public void ballPanel_mouseReleased(MouseEvent e) {
  99     counter.stopCounting();
 100   }
 101 
 102   public void cold(){
 103     setBallColor(Color.blue);
 104     Iterator i = listeners.iterator();
 105     while(i.hasNext()){
 106       BallListener ballListener = (BallListener)i.next();
 107       ballListener.becomeCold();
 108     }
 109   }
 110 
 111   public void warm(){
 112     setBallColor(Color.yellow);
 113     Iterator i = listeners.iterator();
 114     while(i.hasNext()){
 115       BallListener ballListener = (BallListener)i.next();
 116       ballListener.becomeWarm();
 117     }
 118   }
 119 
 120   public void warmer(){
 121     setBallColor(Color.orange);
 122     Iterator i = listeners.iterator();
 123     while(i.hasNext()){
 124       BallListener ballListener = (BallListener)i.next();
 125       ballListener.becomeWarmer();
 126     }
 127   }
 128 
 129   public void warmest(){
 130     setBallColor(Color.red);
 131     Iterator i = listeners.iterator();
 132     while(i.hasNext()){
 133       BallListener ballListener = (BallListener)i.next();
 134       ballListener.becomeWarmest();
 135     }
 136   }
 137 
 138   class TimeCounter extends Thread {
 139   boolean counting = false;
 140   int n = 0;
 141   public void run(){
 142     while(true){
 143       if(counting){
 144         try {
 145           sleep(2000);
 146         }
 147         catch (InterruptedException ex1) {
 148         }
 149         n = n+1;
 150         if (n == 1){
 151           warm();
 152         }
 153         else if (n== 2){
 154           warmer();
 155         }
 156         else if (n==3){
 157           warmest();
 158         }
 159         else{
 160           n = 4;
 161         }
 162 
 163       }
 164       else{
 165         try {
 166           sleep(2000);
 167         }
 168         catch (InterruptedException ex1) {
 169         }
 170         n = n-1;
 171         if (n == 3){
 172           warmest();
 173         }
 174         else if (n== 2){
 175           warmer();
 176         }
 177         else if (n==1){
 178           warm();
 179         }
 180         else{
 181           n = 0;
 182           cold();
 183         }
 184 
 185       }
 186     }
 187 
 188   }
 189   public void startCounting(){
 190     counting = true;
 191   }
 192   public void stopCounting(){
 193     counting = false;
 194   }
 195 }
 196 
 197 
 198 }
 199 
 200 
 201 class BallFrame_ballPanel_mouseAdapter
 202     extends MouseAdapter {
 203   private BallFrame adaptee;
 204   BallFrame_ballPanel_mouseAdapter(BallFrame adaptee) {
 205     this.adaptee = adaptee;
 206   }
 207 
 208   public void mousePressed(MouseEvent e) {
 209     adaptee.ballPanel_mousePressed(e);
 210   }
 211 
 212   public void mouseReleased(MouseEvent e){
 213     adaptee.ballPanel_mouseReleased(e);
 214   }
 215 }

JunHu: Dc222Home/WorkShops/BallListener (last edited 2008-10-03 20:18:43 by localhost)