我是Java的新手。我需要帮助找出我将在下面显示的一些代码。代码的要点是简单地创建一个applet,它使用X位置的变化显示从左向右移动的球。我已经开始关注一个网站的applet教程,该教程使我可以使用这些代码(http://www.javacooperation.gmxhome.de/BallBewegungEng.html)。基本上,我需要有人来解释以下方法及其内容:start方法(什么是线程?我知道它是一个对象,但它在这里服务的目的是什么?)。 run方法(当我将线程优先级设置为MIN / MAX时,我到底在做什么?为什么即使没有创建这样的方法,这个方法也会调用repaint()方法?)。最后,paint方法(g.fillOval行究竟是做什么以及如何做?)。我试过谷歌搜索这些东西,但我很难理解理解我用大多数答案看到的行话。我需要以更简单的方式解释事物,以便我以后可以理解行话。
提前感谢您的帮助。代码:
import java.applet.*;
import java.awt.*;
public class MovingBall extends Applet implements Runnable
{
int x_pos = 10;
int y_pos = 150;
int radius = 20;
public void init()
{
setBackground (Color.blue);
}
public void start()
{
Thread th = new Thread(this);
th.start();
}
public void stop()
{
}
public void destroy()
{
}
public void run()
{
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while(true)
{
x_pos++;
repaint();
try
{
Thread.sleep (20);
}
catch(InterruptedException ex)
{
}
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
public void paint (Graphics g)
{
g.setColor (Color.red);
g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
}
}
答案 0 :(得分:0)
当你想同时运行多段代码而不中断其他线程时,你会使用一个线程。在这种情况下,您使用线程重新绘制屏幕并暂停循环而不影响程序的其余部分。
run方法将从您传递给要运行的线程的Runnable对象重写。创建线程时,将传递给runnable对象并定义一个run方法,该方法将在线程启动时运行。
此类中未定义repaint方法,但它在父类(Applet)中定义,因此您可以在此类中调用它。
paint方法也是从Applet重写的,所以你要定义applet在运行paint方法时会做什么。