我正在使用Java timing framework来执行动画。我想要的是能够在AWT
或Swing
组件上执行一些动画而无需对其进行子类化。我感兴趣的动画包括更改边界,颜色或alpha。网上有很多关于如何子类化Component
的例子,然后覆盖paint(Graphics)
方法以执行此类更改,但是我想找到一种不同的方法。
我尝试通过调用
获取Component
的图片
Graphics2D g2d = (Graphics2D) component.getGraphics();
然后操纵它 - 例如设置alpha值:
AlphaComposite newComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, newVal);
g2d.setComposite(newComposite);
component.repaint();
然而,这没有任何作用。我尝试过其他方法 - 例如使用自定义TimingTarget
或PropertySetter
,但我没有运气。什么是正确的方法?
为了给这个问题提供更多的上下文,这是针对我的javaQuery库,它是 jQuery 到 Java 的一个端口,并且模仿我的以前的项目(带有工作动画)droidQuery。