[問題] repaint 和 setText 的問題

看板java作者 (住在巴別塔的男孩)時間16年前 (2008/04/16 02:27), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/2 (看更多)
已爬文,可用Thread解決, 可是想多知道一點關於java如何運作的, 有人能說明一下為什麼直接用for loop一直repaint行不通嗎? 感謝大家~"~ public void actionPerformed ( ActionEvent e ) { for ( int i = 0; i < n; i++ ) { // set value for drawing repaint(); for( int t = 0; t < delay; t++ ); } } public void paint( Graphics g ) { //draw somthing using data in for loop } 為什麼actionPerformed裡面的repaint只會執行一次啊? 我想呈現動態的圖,就是一直更新draw的參數一直畫,可是好像出了點問題, 但一直想不出問題點在哪~"~ 希望版上的強者們能幫幫忙。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.102.28

04/16 02:36, , 1F
for( int t = 0; t < delay; t++ ); 這在幹嘛用的= =
04/16 02:36, 1F

04/16 07:59, , 2F
怕電腦太快拖一下時間~
04/16 07:59, 2F

04/16 09:06, , 3F
剛剛又測試一下,repaint好像是整個for loop跑完才執
04/16 09:06, 3F

04/16 09:28, , 4F
行一次。
04/16 09:28, 4F
再問一個問題好了,在同一個action裡面, public void actionPerformed ( ActionEvent e ) { try { statusLabel.setText( "opening file" ); //有執行 // opening file System.out.println( "here" ); // 有執行 statusLabel.setText( "start simulating" ); //沒執行 for ( int i = 0; i < n; i++ ) { // set value for drawing repaint(); for( int t = 0; t < delay; t++ ); } statusLabel.setText( "finish simulating" ); //有執行 } catch( Exception e ) {} } 為什麼第二個setText沒有動作,一直想不出來... ※ 編輯: ericsys3152 來自: 140.116.102.28 (04/16 09:53) ※ 編輯: ericsys3152 來自: 140.116.102.28 (04/16 10:40)
文章代碼(AID): #181FE5xp (java)
文章代碼(AID): #181FE5xp (java)