2011-10-25 88 views
1

我有一個使用它具有傳遞給它的按鈕點擊動作事件交換機的程序:來回切換Java按鈕圖像?

public void buttonImageReveal(ActionEvent e){ 

    String temp = e.getActionCommand(); 

    switch(temp){ 

     case "1": 
     ((JButton)e.getSource()).setIcon(one); 
     delay(); 
     ((JButton)e.getSource()).setIcon(null); 
     break; 

延遲僅僅是一個函數的調用以1秒的等待:

public void delay(){ 
     try 
     { 
      Thread.sleep(1000); 
     } 
      catch(InterruptedException e1) 
     { 
      e1.printStackTrace(); 
     } 
    } 

所有結果都是等待,沒有圖像,期望的結果是一秒鐘圖像的閃光。

在此先感謝!

+1

是代碼,整個代碼或只是一塊,因爲沒有右括號... – evotopid

+0

你是什麼意思的圖像的閃光?你想要達到什麼目的?你想要圖像保持閃爍,或者你希望圖像消失1秒鐘並再次顯示? – doNotCheckMyBlog

+1

那裏我看不到任何問題,對於我在任何情況下工作,請張貼http://sscce.org/ – mKorbel

回答

5

設置完圖標後,線程將進入休眠狀態,因此無法繪製新圖標。立即在睡眠結束後,將圖標設置爲空。所以你永遠不會看到畫的圖標。

您可以嘗試使用javax.swing.Timer定期更改圖標。

+1

excelent catch +1,我會刪除我的文章 – mKorbel

+0

啊,是的,現在你明白了,所以最好使用這個函數不會導致這種情況? –

+0

@Eric你已經從@AKJ得到了這個答案:只需使用'javax.swing.Timer'。 – jfpoilpret