如何在Java Applet中的图形之间延迟

| 我正在编写一个程序来输入数字,并在小程序上绘制该数量的随机颜色和位置的圆圈。我整夜都在努力找出如何在出现的每个圆圈之间增加延迟。现在,如果我有一个for-each语句,其中有一个延迟,并且说我输入了20个圆圈,并且延迟了1000个,它将在20秒内不执行任何操作,那么所有圆圈将立即出现,因为在paint()方法结束之前,屏幕不会刷新。 我唯一想到的另一种选择是在start()方法中包含一个for-each语句,该语句将为数组添加颜色和坐标,并使用paint()方法绘制该数组中的所有圆。我可能是错的,但我可以想象这将占用过多的内存。 另一种可能性是仅在现有框架上添加一个圆而不清除它,但是我找不到解决方法。     
已邀请:
        使用“ 0”将新的“ 1”对象添加到可扩展列表(例如“ 2”)中。每次加法后都叫
repaint()
。在
paintComponent(Graphics)
中,画出列表中的每
Circle
。 更新资料 不幸的是,我目前无法添加评论(有关gory的详细信息,请参见外部JS加载失败)。因此,我将其添加为修改内容。 @mKorbel:不,我确定没有在1.6.0_26上尝试过!如果我完全尝试过,我会发布代码。 ;) @Tycho:我没有注意到您添加了awt标签,并假定您正在使用Swing。 您真的在使用AWT吗? (如果是。)为什么?   @Tycho:“通过快速搜索,我唯一能看到的就是Swing被更多地用于用户界面,这不是我要在这里使用的。” AWT和Swing(使用
Applet
/
JApplet
Frame
/
JFrame
)都用于开发图形用户界面。或者换句话说,无论是使用AWT还是Swing,还是开发applet或自由浮动框架,您都在开发(G)UI。 小程序可以扩展
java.applet.Applet
(AWT)或
javax.swing.JApplet
(Swing)。 如果小程序扩展了
Applet
,请将其更改为Swing
JApplet
。几乎没有GUI开发人员甚至对AWT记忆犹新,可以就此提出很好的建议。我的建议全都和
JApplet
/ Swing有关。使用AWT无法正常工作。     
        使用计时器。例如,当您开始绘制圆时,请设置一个值:
   time_press = System.currentTimeMillis();
   circles_to_draw = 20;
然后在您的draw方法中的某处执行以下操作:
while(circles_to_draw > 0 && System.currentTimeMillis() < time_press + 1000)
{
    time_press += 1000;
    circles_to_draw --;

    //Draw your circle
}
    

要回复问题请先登录注册