2015-04-08 152 views
1

我想在我的Java GUI應用程序中添加一個簡單的圓形進度條,讓用戶理解,有一些網絡/下載應用程序。所以,我想是這樣的:Java中的圓形進度條顯示

enter image description here

並在代碼:

waitingBar.start(); 
myLongOperation(); 
waitingBar.stop(); 

我發現這個solution,這應該是不錯的佈局,但它不工作,因爲我得到這個問題:

在線程異常 「AWT-EventQueue的-0」 java.lang.IllegalArgumentException異常:在java.awt.AlphaComposite中α值超出範圍 (AlphaComposite.java:618) 在java.awt.AlphaComposite.getInstance(AlphaComposite.java:683) 在gui.WaitLayerUI.paint(WaitLayerUI.java:41)

我有外部類,它調用該方法開始();在longOperation()之前;然後執行stop();. JFrame直接在Main中初始化。

所以我的問題是:

  1. 有什麼很簡單,求出圓杆出現,dissapear?
  2. 如何解決我遇到的問題?
+1

看來你正在給出現此錯誤的任何組件設置一個顏色,因爲它超出了正常顏色範圍 – SomeJavaGuy

+0

'alpha值超出範圍' - 所以修復了這個問題。不要讓alpha值超出範圍。這裏是關於[用JLayer裝飾組件]的Swing教程鏈接(http://docs.oracle.com/javase/tutorial/uiswing/misc/jlayer.html) – camickr

+0

他們忘了在''中將'mIsRunning'設置爲'false', stop()'方法。只需添加它並且'IllegalArgumentException:超出範圍的alpha值將消失。 – andronix

回答

3

您是否考慮過使用動畫GIF或動畫PNG? 通過這些類型的圖像,您可以顯示圖像並隱藏圖像,而不需要任何花哨的東西,它會爲您提供所需的動畫。

+0

這是一個可能的解決方案,但是我發佈的這個解決方案非常好,因爲它添加了一個疊加層作爲背景。 –