2011-07-25 68 views
3

我必須在我的JFrame上創建自定義組件,Component將顯示該用戶的存儲狀態,存儲將以百分比表示。如何使用形狀和漸變創建自定義Java Swing GUI組件

我需要創造這樣的:

Image

我嘗試了定製的JLabel創建一個標籤,然後着色該標籤由左到右,但我無法創建一個雲狀標籤然後根據變量值填充該標籤。

我應該怎麼做,做什麼是最好的方法?

有一次,我想我應該使用一系列圖像來顯示用戶存儲的狀態。

謝謝!

+0

您StorageStatus是靜態的(手繪,如果動作發生)或動態(定期根據一些定時器) – mKorbel

回答

5

我想你會需要使用圖像掩模(例子herehere),如果您是複製,雲究竟。

的過程將需要2個圖像:

  • 雲輪廓(藍色部分)
  • 圖像掩模是雲的形狀,可能是黑色的外和內白

然後,您的繪圖過程中,每次存儲變化百分比時您必須執行的操作:

  1. Creat e新的緩衝圖像
  2. 然後按所需樣式繪製綠色填充條(例如,傾斜的,因爲這圖像中)
  3. 複製了這個
  4. 圖像掩碼繪製這個新的圖像在屏幕上,與掩模應用爲described here
  5. 繪製雲輪廓圖像篩選

這是怎麼回事花一個小時左右的時間讓你放在一起,所以我不會爲你做。如果你遇到問題(或者不明白我剛纔描述的任何問題),那就特別提問一下。

2

您可以使用JLabel和從Icon派生的自定義實現的類來完成此操作。

+0

可以請你,張貼在這裏的代碼片斷,或者你的答案的一些闡述,謝謝 – Asghar

+0

我想你是熟悉如何在JLabel中顯示一個圖標。對於一個圖標的子類化,給它一個百分比屬性並且自己畫一個圖標不應該太難,我想。 – Joey

3

您可以使用GlyphVector#getGlyphOutline()來獲取Unicode字符的形狀,如☁\ u2601並填寫GradientPaint