2014-03-18 86 views
1

Bonjour, 我正在嘗試我的手在動畫中,並且發現自己在連續的單個圖像上出現了一條爆炸條。我希望他們依次展示動畫爆炸。當然,我在想JLabelImageIcon,但是當我看着JLabel規範我發現這行:顯示ImageIcon的一部分

JLabel(Icon icon) - 創建一個JLabel實例與指定的圖像。標籤在其顯示區域中垂直和水平居中。

我希望能夠在標籤中只顯示完整圖像的一部分,然後加載另一部分:基本上在一個圖像上加載不同的階段。

有沒有辦法做到這一點,而不削減圖像和加載每一個人?

+0

*「有沒有辦法做到這一點,而不切斷圖像..」*爲什麼'沒有切斷圖像'? –

回答

1
  1. 標籤添加到JScrollPane中,並設置滾動窗格的大小是寬的個人形象。您可能還想要移除滾動窗格的滾動條,並確保滾動窗格不顯示滾動條。

  2. 使用擺動計時器來安排動畫。

  3. 每當Timer觸發時,都可以使用視口的setViewPosition方法更改滾動窗口的視口位置。

2

你也可以畫畫用drawImage方法從Graphics作物圖像的圖像被繪製

public abstract boolean drawImage(Image img, 
           int dx1, 
           int dy1, 
           int dx2, 
           int dy2, 
           int sx1, 
           int sy1, 
           int sx2, 
           int sy2, 
           ImageObserver observer) 

繪製儘可能多的指定的指定區域的圖像與當前可用的一樣,可以隨時對其進行縮放以適合目標可繪製表面的指定區域。透明像素不會影響已經存在的任何像素。

參數:

  • IMG - 指定的圖像繪製。如果img爲null,則此方法不執行任何操作。
  • dx1 - 目標矩形第一個角的x座標。
  • dy1 - 目標矩形第一個角的y座標。
  • dx2 - 目標矩形第二個角的x座標。
  • dy2 - 目標矩形第二個角的y座標。
  • sx1 - 源矩形第一個角的x座標。
  • sy1 - 源矩形第一個角的y座標。
  • sx2 - 源矩形第二個角的x座標。
  • sy2 - 源矩形第二個角的y座標。
  • 觀察者 - 當更多的圖像被縮放和轉換時要被通知的對象。

參見使用單個動畫子畫面選擇圖像的不同位置來繪製一個例子here

enter image description here

enter image description here

之前20JAN15,示例程序指出這個答案(這被用來創建上述爆炸的動畫顯示)有邏輯錯誤及僅表現2圖像行。(請注意,該示例不顯示爆炸的最後一行...)

請參閱pointed to-page的其他答案,其中包含修復程序。乾杯。沃倫K.