下面的Applet程序通过内部类处理鼠标单击事件。在小程序中,如果点击鼠标,则在状态栏输出鼠标点击的坐标;如果双击鼠标,则显示一副图片,鼠标单击处为显示图片的左上角坐标,显示图片的宽度为200像素,高度为180像素。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。
注意:不改动程序的结构,不得增行或删行。
程序的执行结果为:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
/*
<applet code=Hua width=200 height=100>
</applet>
*/
public class Hua extends Applet
int xPos,yPos;
int sum;
Image pic;
public void init()
addMouseListener(new ClickMouse());
public void paint(Graphics g)
if(sum==2)
g.drawImage(pic,xPos,yPos,200,180,super);
public class ClickMouse extends MouseAdapter
public void mouseClicked (MouseEvent mouse)
sum=mouse.getClickCount();
if(sum==2)
pic=getImage(getAudioClip(),"hua.jpg");
xPos=mouse.getX();
yPos=mouse.getY ( );
showStatus ("鼠标单击点的坐标: ("+mouse. getX ( ) +" , "+mouse. getY ( ) + ")" );
paint ( );
ex37_3.html:
<html>
<head>
<title>A Simple Program</title>
</head>
<body>
<applet code=" Hua.class" width=800 height=400>
</applet>
</body>
</html>
参考答案:
drawImage(pic,xPos,yPos,200,180,this);
pic=getImage(getDocumentBase(),"hua.jpg");
repaint();
解析:
本题主要考查Applet小程序的应用。解答本题的关键是能够熟练掌握Applet小程序的基本理论及其执行过程。在本题中,通过内部类ClickMouse处理鼠标单击事件。g.drawImage(pic,xPos,yPos,200,180,this);语句的功能是在指定的Applet显示区内画出图片,pic=getImage(getDocumentBase(),"hua.jpg");语句功能是获取图片的URL,repaint();语句功能是重新显示图片。