早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

●试题六 【说明】 下面是一个Applet程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有

题目

●试题六

【说明】

下面是一个Applet程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有清除绘图区域按钮,用来清除已经绘制的图像。

程序运行结果如图5所示。

图5

import javA.awt.*;

import javA.applet.*;

/*

<applet code=ex6_7.class width=800 height=400>

</applet>

*/

public class ex6_7 extends Applet{

private Button btn;

private boolean bDraw, bClear;

private int upX, upY,downX, downY;

public void init(){

setLayout(null);

bClear = false;

bDraw = false;

btn = new Button("clear");

btn.reshape(250, 150, 70, 30);

add(btn);

}

public void paint(Graphics g){

if(bClear){

g.clearRect(0, 0, getSize().width, getSize().height);

(1) ;

}

if(bDraw){

g.drawLine( (2) );

bDraw = false;

}

}

public void update(Graphics g){

(3) ;

}

public boolean mouseDown(Event event, int x, int y){

downX = x;

downY = y;

return true;

}

public boolean mouseUp(Event event, int x, int y){

upX = x;

upY = y;

(4) ;

repaint();

return true;

}

public boolean action(Event event, Object object){

if ( (5) ){

bClear = true;

repaint();

}

return true;

}

}

ex6_7.html

<HTML>

<HEAD>

<TITLE> ex6_7 </TITLE>

</HEAD>

<BODY>

<applet code=" ex6_7.class" width=800 height=400 >

</applet>

</BODY>

</HTML>

参考答案
正确答案:
●试题六【答案】(1)bClear=false(2)downX,downY,upX,upY(3)paint(g)(4)bDraw=true(5)event.target==btn【解析】本题主要考查Applet的图形绘制,鼠标事件处理和用户界面的相关知识点以及会使用boolean类型的变量控制程序的流程。解题关键是,熟悉Applet的图形绘制,会用Graphics类的基本绘图方法,例如drawLine()方法;熟悉鼠标事件处理,并能与图形绘制和用户界面设计相结合做简单的综合应用;掌握一定的程序流程的控制思想。本题中,主要的思想是首先判断用户将鼠标按下与放开的坐标位置,然后使用drawLine()方法绘制由鼠标按下点到放开点的直线。注意不要将drawLine()方法的几个参数颠倒,要明白此方法的几个参数的确切含义。将bDraw变量的值设为false,这导致程序在调用paint()方法时不能进入g.drawLine语句,应改为true。最后要明确clear是btn对象显示在用户界面的名称,而不能作为对象来与event.target做比较,因此应改为btn,这在调试时就会出现变量无法解析的错误;符号==这里要确定点击btn事件发生才能做清除,否则不能达到预期效果。