簡體   English   中英

在Java Swing中淡化一部分Graphics

[英]Fading a portion of Graphics in Java Swing

我正在嘗試在搖擺中實現淡入/淡出動畫。 我正在使用一個沒有任何組件的JPanel。 它完全由paintComponent()方法繪制。

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

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

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

您是否嘗試過使用Graphics對象(如矩形,圓形等)進行淡入/淡出? 這樣就不會觸發完整的面板。

祝好運!

或許,但這可能比它的價值更難實現。 創建一個要設置動畫(或淡入淡出)大小的JComponent ,將其添加到JPanel ,並在動畫期間調用較小組件上的repaint()而不是較大的JPanel

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

使用2個不同的剪輯調用super.paintComponent()兩次。 對於第二個顏料,您可以設置Alpha過濾器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM