乙個SWING的怪問題

2021-04-01 20:36:02 字數 888 閱讀 5280

我最近在做學校裡乙個關於作業系統的實驗,主要實現程序排程的演算法,但要求是視覺化,即動態地表現出程序的變化情況.這就牽涉到了介面的動態變化,比如jlabel上的文字要不斷變化,由於我對swing不熟悉所以碰到了乙個大問題,如下.

比如我有乙個button被監聽,一旦按下便動態地不斷改變jlable上的文字.

button.addactionlistener(new actionlistener()}}

}但很不幸出現了問題,label上只顯示迴圈最後一次出現的文字,事先宣告我加入了slow()方法來減慢變化速度,所以不存在由於變化過快無法看清的理由.查了點swing的原理,發現swing的元件是"畫"上去的,並不是像awt那樣"粘"上去的,便聽了很多網友的告戒使用了很多重繪的方法,但還是不行.

此時有一件事讓我很在意,即其實label上的字只變化了一次,那便是迴圈的最後一次.我做了另乙個實驗:

button.addactionlistener(new actionlistener()}}

結果是label上只顯示了內容2,內容1並沒有顯示.   這個時候我猜測了這樣一種可能:每次事件的觸發,只能改變

swing一次,由於時間不多,我也無法求證,但總得解決這個問題.所以我準備迂迴這個問題.

我的做法是不斷觸發事件,來模擬乙個事件中的迴圈.

具體方法如下: 初始化乙個swing定時器, timer time=new timer(10,listener);  規定其每10秒執行一次,並把

事件交給listener監聽,一旦button被按下,變讓time.start();     然後time類便會每過10秒便會觸發事件,事件處理

裡寫的就是label.settext("不同內容");  從而達到了目的.

雖然我這樣並不高效,但畢竟解決了問題,以後再慢慢研究swing了.:)

乙個簡單的怪問題

乙個學員問了乙個關於io的怪問題,問題是這樣的 讀取鍵盤輸入的乙個字元,然後列印輸出這個字元,在列印字元的前面和後面分別加了乙個字串,程式的 如下 public class test 編譯並執行這個程式。1 輸入字元 a 命令列視窗列印輸出的結果如圖1所示,與我們預期的一樣。2 重新執行這個程式,直...

乙個簡單的怪問題

乙個學員問了乙個關於io的怪問題,問題是這樣的 讀取鍵盤輸入的乙個字元,然後列印輸出這個字元,在列印字元的前面和後面分別加了乙個字串,程式的 如下 public class test 編譯並執行這個程式。1 輸入字元 a 命令列視窗列印輸出的結果如圖1所示,與我們預期的一樣。2 重新執行這個程式,直...

乙個簡單的怪問題

乙個學員問了乙個關於io的怪問題,問題是這樣的 讀取鍵盤輸入的乙個字元,然後列印輸出這個字元,在列印字元的前面和後面分別加了乙個字串,程式的 如下 public class test 編譯並執行這個程式。1 輸入字元 a 命令列視窗列印輸出的結果如圖1所示,與我們預期的一樣。2 重新執行這個程式,直...