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

JunHu: Dc222Home/WorkShops/BallFrame (last edited 2008-10-03 20:20:31 by localhost)