不要阻塞gui
通常我們在教程中看到新增乙個按鈕事件:
①:button.addactionlistener(new actionlistener()
});原來我也看過一些處理阻塞的方法:
②:swingutilities.invokelater(new runnable()
});然後將上面的**新增到①的位置。可能是我理解錯了,這個方法感覺
和原來沒有太大的差異。
2012-5-2編輯
後來學習多執行緒知道裡invokelater方法只是把run方法的**放在事件分發執行緒中,者應同樣會阻塞畫面,正確的做法是再run方法中將耗時的邏輯新開乙個執行緒處理,即方法③。
2012-5-2編輯完畢
下面是我從swing hecks 這本書上學到的方法:
③:thread buttonthread; //全域性變數。
//新增事件監聽
button.addactionlistener(new myaction());
//編寫內部類
class myaction extends abstractaction implements runnable
public void actionperformed(actionevent e)else}}
個人感覺③方法效果顯著。記錄下來,備忘。
c 多執行緒訪問介面
c 2005後不再支援多執行緒直接訪問介面的控制項 介面建立執行緒與訪問執行緒不是同乙個執行緒 不過可以使用delegate來解決 2.定義執行緒函式 在另乙個執行緒中可以對介面控制項進讀操作 view plaincopy to clipboardprint?private void progres...
多執行緒二(Runnable介面)
建立執行緒的第二種方式 實現runable介面 步驟 1.定義類實現runnable介面。2.覆蓋runnable 中的run方法。將執行緒要執行的 存放在run方法中。3.通過thread類建立執行緒物件。4.將runnable介面的子類物件作為實際引數傳遞給thread類的建構函式。自定義的ru...
多執行緒(三) Runnable介面
runnable與thread的關係 1.thread是乙個類,runnable是乙個介面。thread實現了runnable這個介面。2.實現runnable介面可以避免thread單繼承的缺陷。因為當乙個類已經繼承乙個父類了,它還要實現多執行緒的功能,這個時候runnable就可以解決這種情況。...