Swing 多執行緒 解決介面blocking

2021-08-30 17:01:35 字數 670 閱讀 6193

不要阻塞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就可以解決這種情況。...