我是一名参加AP计算机科学的高中生,我遇到了一个项目,我遇到了一些麻烦。目标是通过applet中的条形图可视化插入排序和选择排序,显示条形切换位置以及排序的每个步骤。对图表进行排序很简单,但每当我尝试添加任何类型的计时器或延迟时,在显示已排序的图形之前会显示白色屏幕几秒钟,而不显示任何中间步骤。我尝试过使用sleep,util.Timer,最近简单地使用System.currentTimeMillis引用系统时钟。我试过swing.Timer但我无法理解它应该如何运作。
如果我正确理解JApplet(我可能不会,这也是我问这个问题的原因之一),这段代码应该显示黑色的五个条形,然后等待五秒钟,然后以白色显示条形图。相反,它会显示一个完全白色的屏幕5秒钟,然后显示白色的条形图。
public void paint (Graphics page)
{
page.setColor(Color.black);
for (int count = 0; count < 5; count ++)
page.fillPolygon(xBars[count], yBars[count], xBars[count].length);
boolean repeat = true;
int iterations = 0;
long timeLastExecuted = System.currentTimeMillis();
while (iterations < 5)
{
if ((System.currentTimeMillis() - timeLastExecuted) > 1000)
{
timeLastExecuted = System.currentTimeMillis();
iterations++;
}
}
page.setColor(Color.white);
for (int count = 0; count < 5; count ++)
page.fillPolygon(xBars[count], yBars[count], xBars[count].length);
}
这整个练习令人难以置信地令人沮丧,因为没有解释applet是什么,applet的结构,或者它是如何工作的,只有applet中使用的方法的示例代码和解释。据我所知,小程序甚至没有拥有主要方法,这已经超出了我通常的理解范围。尝试编写applet通常需要复制本书中的示例代码messing with it until it works。任何解释applet是什么,为什么有人会使用不敬虔的东西,或者各种方法如何协同工作以及它们在没有主方法的情况下以何种顺序执行的任何解释都将非常受欢迎。