[问答题] 下面的Applet程序,其功能为画一个正方形,大小140*140,其背景色为蓝色(其填充色为pink色,各边离Applet的边为10像素)和一个在填充的正方形中自右上到左下来回移动的小球(半径15)。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。 注意:不改动程序的结构,不得增行或删行。程序的执行结果为: ![[问答题] 下面的Applet程序,其功能为画一个正方形,大小140*140,其背景色为蓝色(其填充色为pink色,各边离Applet的边为10像素)和一个在填充的正方形中自右上到左下来回移动的小球( [问答题] 下面的Applet程序,其功能为画一个正方形,大小140*140,其背景色为蓝色(其填充色为pink色,各边离Applet的边为10像素)和一个在填充的正方形中自右上到左下来回移动的小球(](/uploadfile/member/20180926/1537955868.jpg)
import java.awt.*; import java.applet.*; //画一个正方形和一个移动的球,实现了Runnable接口。 public class BallAnim extends Applet implements Runnable { Thread animThread; int ballX=100;//球的x坐标 int bally;10;//球的Y坐标 int ballDirection=0;//球移动的方向标志:0表示从上向下移动,1表示从下向上移动 public void init() { super.setBackground(Color.blue); } public void start() { if (animThread !=null) { animThread = new Thread(this); animThread.start(); } } public void stop() { animThread.stop(); animThread = null; } // 实现Runnable接 public void run() { Thread.currentThread().setPriority(Thread. NORM_PRIORITY);//设置线呈优先级NORM_PRIORITY while (true) { moveBall(); try { Thread.sleep(100); // 休眠0.1秒 } catch (Exception s
参考答案:
问题解析:
this.setBackground(Color.blue); animThread==null repaint(); 本题主要考查Java Applet程序的设计,Java语句的线程机制以及for循环语句。解答本题的关键是比较熟练的掌握JavJava语句的线程机制以及for循环语句的有关知识。线程是程序中的一个执行流。一个执行流是由CPU运行程序的代码、操纵程序的数据所形成的。创建线程的两种基本方法:(1)通过实现Runnable接口创建线程。(2)通过继承Thread类创建线程。控制线程运行的基本方法有:(1)sleep(),使比其低的优先级线程运行。(2)stop(),强行终止线程。(3)run(),创建线程体。(4)start()使新创建的线程处于可运行状态等。在本题中,this.setBackground(Color.blue);语句的功能是设置Applet显示区的背景色为蓝色,if(animThread !=null)语句的功能是判断线程animThread是否存在,语句的功能是重新绘制Applet。

![[问答题] 下面的Applet程序,其功能为画一个正方形,大小140*140,其背景色为蓝色(其填充色为pink色,各边离Applet的边为10像素)和一个在填充的正方形中自右上到左下来回移动的小球( [问答题] 下面的Applet程序,其功能为画一个正方形,大小140*140,其背景色为蓝色(其填充色为pink色,各边离Applet的边为10像素)和一个在填充的正方形中自右上到左下来回移动的小球(](http://www.mshxw.com/aiimages/31/251766.png)
