2012-05-03 33 views
1

我正試圖在鞦韆中實現淡入/淡出動畫。 我正在使用沒有任何組件的JPanel。它完全由paintComponent()方法繪製。在Java Swing中褪色圖像的一部分

現在在這個JPanel的一部分中,我想實現淡入/淡出動畫。當我嘗試使用AlphaComposite時,整個JPanel都會觸發動畫。

我可以將該動畫限制在該面板的一個小剪輯區域嗎?

Graphics2D g2d = (Graphics2D) g; 
    g2d.setComposite(AlphaComposite.getInstance(
      AlphaComposite.XOR, alpha)); 
+0

爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

回答

1

您是否嘗試過使用Graphics對象(如矩形,圓圈等)來淡入/淡出?這樣它就不會被整個面板觸發。

祝你好運!

1

也許,但這可能比它的價值更難實現。創建一個尺寸爲JComponent的動畫(或淡入淡出),將其添加到您的JPanel中,並在動畫中調用repaint()而不是較大的JPanel

1

您可以在繪畫前使用setClip()來限制淡化區域。 假設你想要一個小的衰落矩形。使用Area類創建2個Shapes。原始剪輯與淡入淡出矩形和減法的交集(從原始剪輯中減去淡入淡出的矩形)。

用兩個不同的剪輯調用super.paintComponent()兩次。對於第二個油漆,你可以設置你的alpha濾鏡。