我正在使用 Java计时框架来执行动画。我想要的是能够在不继承它的情况下对一个AWT
或Swing
组件执行一些动画。我感兴趣的动画包括更改边界、颜色或 alpha。网上有很多关于如何子类化 a 的示例Component
,然后重写该paint(Graphics)
方法以执行此类更改,但是我想找到一种不同的方法。
我尝试Component
通过调用来获取 a 的图形
Graphics2D g2d = (Graphics2D) component.getGraphics();
然后对其进行操作——比如设置 alpha 值:
AlphaComposite newComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, newVal);
g2d.setComposite(newComposite);
component.repaint();
然而,这什么也没做。我尝试过其他方法——比如使用 customTimingTarget
或PropertySetter
s,但我没有任何运气。什么是正确的方法?
为了给这个问题提供更多背景信息,这是针对我的javaQuery库的,它是jQuery到Java的一个端口,并且是在我之前的项目(带有工作动画)droidQuery之后建模的。