4590
Comment:
|
4538
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from Dc222Home/WorkShops/BallListener #java |
#FORMAT 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 }