下面的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();语句功能是重新显示图片。