用彩色Java动画(逐渐)填充ellispe2D对象

用彩色Java动画(逐渐)填充ellispe2D对象,java,animation,timer,shape,Java,Animation,Timer,Shape,我的问题很简单: 1) 我有一个扩展JFrame的主类。 2) 在该类中有一个JPanel,上面有一个BuffereImage。 3) 最后还有一个我称之为“火”的按钮。这就是设计的全部 现在,交易是这样的: 当按下按钮时,有一个小方法返回一个由5个Ellipse2D对象组成的数组。(该数组称为“点”,本质上是一个简单圆数组..) 当按下“Fire”键时,我想做的就是让这些对象显示在我称之为“bf”的BuffereImage上,并以一种给人一种动画感的方式逐渐让它们充满颜色。最简单的方法是什么

我的问题很简单:

1) 我有一个扩展JFrame的主类。
2) 在该类中有一个JPanel,上面有一个BuffereImage。
3) 最后还有一个我称之为“火”的按钮。这就是设计的全部

现在,交易是这样的:

当按下按钮时,有一个小方法返回一个由5个Ellipse2D对象组成的数组。(该数组称为“点”,本质上是一个简单圆数组..)

当按下“Fire”键时,我想做的就是让这些对象显示在我称之为“bf”的BuffereImage上,并以一种给人一种动画感的方式逐渐让它们充满颜色。最简单的方法是什么

另外,我尝试过使用swing Timer类,但这种方法的问题是,如果我想通过数组,我无法将参数传递到方法调用(在actionPerformed内部)中


提前感谢您

构造ActionListener对象(您传递给计时器的对象),以便它能够访问执行动画所需的数据。计时器只是让ActionListener知道何时在动画中执行下一步。。。


导入java.awt。;
导入java.awt.geom。;
导入javax.swing.*

公共类myApp扩展了JFrame{

private JPanel myPanel;
private JButton myButton;
private Ellipse2D e[];

public myApp(){
    //the objects I need to draw
    e = new Ellipse2D.Double[2];
    e[0] = new Ellipse2D.Double(50.0, 50.0, 50.0, 50.0);
    e[1] = new Ellipse2D.Double(120.0, 120.0, 50.0, 50.0);
    //--------------------------
    setSize(400,300);
    myPanel = new JPanel(new BorderLayout());
    myButton = new JButton("Fire");
    setLayout(new BorderLayout());
    this.add(myPanel, BorderLayout.SOUTH);
    this.add(myButton, BorderLayout.NORTH);
}
public static void main(String args[])  {
    myApp my = new myApp();
    my.setVisible(true);
}
}



问题不仅在于我不知道如何使用timer类,而且我也不知道在计时器将重复调用的方法中放置什么,以便我可以获得动画

考虑创建并发布一个(请点击链接),这是一个小型可编译、可运行的程序,展示了您解决此问题的最佳尝试。然后,我们可以检查您的代码,运行它,修改它,最好能够帮助您修复它。