锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
package com.sitinspring;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
/**
* 瀹氭椂鍥炶皟綰跨▼綾?br />
*
* @author sitinspring(junglesong@gmail.com)
*
* @date 2007-11-6
*/
public class TimedCallBackThread implements Runnable {
// 涓縐掔殑姣鏁板父閲?/span>
private final static int ONE_SECOND = 1000;
// 闄愬埗鏃墮棿,浠ョ涓哄崟浣?/span>
private final int waitTime;
// 宸茬粡嫻侀濈殑鏃墮棿
private int passedTime;
private Timer timer;
private Thread thread;
private MvcTcModel model;
private MvcTcView view;
public TimedCallBackThread(MvcTcModel model, MvcTcView view, int waitTime) {
this.model = model;
this.view = view;
this.waitTime = waitTime;
this.passedTime = 0;
// 鍒涘緩騫跺惎鍔ㄥ畾鏃跺櫒
timer = new Timer(ONE_SECOND, new ActionListener() {
public void actionPerformed(ActionEvent evt) {
timeListener();
}
});
timer.start();
// 鍒涘緩騫跺惎鍔ㄧ嚎紼嬫潵瀹屾垚浠誨姟
thread = new Thread(this);
thread.start();
}
private void timeListener() {
passedTime++;
// 鍔ㄦ佹樉紺虹姸鎬?/span>
int modSeed = passedTime % 3;
if (modSeed == 0) {
view.getLabel2().setText("鍝嶅簲涓?/span>");
} else if (modSeed == 1) {
view.getLabel2().setText("鍝嶅簲涓?.");
} else if (modSeed == 2) {
view.getLabel2().setText("鍝嶅簲涓?img alt="" src="http://www.aygfsteel.com/Images/dot.gif" />.");
}
// 濡傛灉嫻侀濇椂闂村ぇ浜庤瀹氭椂闂村垯涓柇綰跨▼
if (passedTime > waitTime) {
passedTime = waitTime;
thread.interrupt();
}
}
public void run() {
while (passedTime < waitTime) {
try {
Thread.sleep(10000);// 妯℃嫙涓涓楁椂鐩稿簲榪囩▼
timer.stop();// 浠誨姟瀹屾垚,鍋滄Timer
view.getLabel2().setText(model.getText2());
} catch (InterruptedException ex) {
timer.stop();// 綰跨▼涓柇,鍋滄Timer
view.getLabel2().setText("鍦ㄦ寚瀹氭椂闂村唴鏈搷搴?/span>");
} catch (Exception ex) {
ex.printStackTrace();
}
return;
}
}
}
鎵ц鏁堟灉濡備笅:
鏈枃浠g爜涓嬭澆(鐐瑰嚮絎簩涓寜閽?:
http://www.aygfsteel.com/Files/sitinspring/TimedThreadCallBack20071106194506.rar
]]>
涓涓楁椂鍝嶅簲榪囩▼搴旇閲囩敤鍥炶皟鍜岀嚎紼嬫潵澶勭悊錛屽叿浣撳氨鏄妸鍘熸潵鐨勯『搴忔墽琛屼慨鏀逛負寮傛鏂瑰紡錛屽茍璁╄璋冪敤鑰呰皟鐢ㄨ皟鐢ㄨ呬互鑾峰緱鎵ц緇撴灉銆傚湪闄勪歡鐨勪緥瀛愪腑錛孷iewer灝辨槸璋冪敤鑰咃紝瀹冧唬琛ㄧ晫闈紝鑰孡ongTimeResponse鏄璋冪敤鑰咃紝瀹冨唴閮ㄧ敤綰跨▼鍚姩涓涓楁椂榪囩▼錛屾墽琛屽畬姣曞啀閫氱煡璋冪敤鑰呫?br />
Viewer綾諱唬鐮佸涓嬶細
LongTimeResponse綾諱唬鐮佸涓嬶紝鍙互鐪嬪嚭錛屽畠涔嬫墍浠ヨ兘鍥炶皟璋冪敤鑰咃紝鏄洜涓哄叾鍐呴儴鏈夎皟鐢ㄨ呯殑寮曠敤viewer錛屽湪鍏舵瀯閫犲嚱鏁頒腑viewer琚祴涓婁簡鍊鹼細
璋冪敤榪囩▼濡備笅錛?/p>
鎵ц璧鋒潵鍙互鐪嬪嚭錛岀▼搴忓厛杈撳嚭浜?br />
New Count=123
榪囦簡鍗佺錛屾墠杈撳嚭錛?br />
New Count=1000
榪欒鏄庯紝紼嬪簭鏄紓姝ユ墽琛岀殑錛岃楁椂榪囩▼娌℃湁褰卞搷鍒頒富騫茬▼搴忕殑榪愯錛岃岃楁椂榪囩▼瀹屾垚鍚庯紝鎵嶆妸榪斿洖緇撴灉閫氱煡浜嗚皟鐢ㄨ咃紝涓誨共紼嬪簭娌℃湁鍙楀埌鑰楁椂榪囩▼鐨勫獎鍝嶏紝鍥犳涔熷氨涓嶄細瀵艱嚧鐣岄潰鍋滈】錛屽搷搴斿仠姝紝鏃犺皳絳夊緟絳夌己闄楓?br />
浠ヤ笂灝辨槸浣跨敤鍥炶皟鍜岀嚎紼嬪鐞嗕竴涓楁椂鍝嶅簲鐨勬暣涓繃紼嬨?br />
榪欓噷鍙笅杞芥暣涓▼搴?
http://www.aygfsteel.com/Files/sitinspring/Callback20070628133516.zip
渚嬬▼2:
http://www.aygfsteel.com/Files/sitinspring/MVCThreadCallback.rar