[英]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.