用彩色Java动画(逐渐)填充ellispe2D对象
我的问题很简单: 1) 我有一个扩展JFrame的主类。用彩色Java动画(逐渐)填充ellispe2D对象,java,animation,timer,shape,Java,Animation,Timer,Shape,我的问题很简单: 1) 我有一个扩展JFrame的主类。 2) 在该类中有一个JPanel,上面有一个BuffereImage。 3) 最后还有一个我称之为“火”的按钮。这就是设计的全部 现在,交易是这样的: 当按下按钮时,有一个小方法返回一个由5个Ellipse2D对象组成的数组。(该数组称为“点”,本质上是一个简单圆数组..) 当按下“Fire”键时,我想做的就是让这些对象显示在我称之为“bf”的BuffereImage上,并以一种给人一种动画感的方式逐渐让它们充满颜色。最简单的方法是什么
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类,而且我也不知道在计时器将重复调用的方法中放置什么,以便我可以获得动画 考虑创建并发布一个(请点击链接),这是一个小型可编译、可运行的程序,展示了您解决此问题的最佳尝试。然后,我们可以检查您的代码,运行它,修改它,最好能够帮助您修复它。