下面是一个Applet程序,其功能是将完整的图像显示于Applet的区块中,然后可以通过拖动鼠标让图像随着鼠标拖动的轨迹而移动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运

admin2009-01-15  92

问题 下面是一个Applet程序,其功能是将完整的图像显示于Applet的区块中,然后可以通过拖动鼠标让图像随着鼠标拖动的轨迹而移动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
    注意:不改动程序的结构,不得增行或删行。
    程序运行结果如下:

     import java.applet.*;
     import java.awt.*;
     /*
     <applet code="ex8_3.class" width=800 height=400 >
     </applet>
     */
     public class ex8_3 extends Applet{
       private Image iImg;
       private int xPos,yPos;
       public void init(){
          xPos = yPos = 0;
          iImg = getImage("ex8_3.jpg");
       }
       public void paint(Graphics g){
          g.drawImage(iImg,xPos,yPos);
       }
       public boolean mouseDrag(Event e,int x, int y){
            xPos  = x;
            yPos  = y;
            paint();
            return true;
       }
     }
      ex8_3.htm
      <HTML>
      <HEAD>
         <TITLE>ex8_3</TITLE>
      </HEAD>
      <BODY>
      <applet code="ex8_3.class" width=800 height=400 >
      </applet>
   </BODY>
   </HTML>

选项

答案iImg=getlmage(getDocumentBase(),"ex8_3.jpg") g.drawImage(iImg,xPos,yPos,this) repaint()

解析 本题主要考查在Applet窗口中显示图像,并结合鼠标事件处理的综合应用。解题关键是熟悉图像文件的加载过程,会跟踪鼠标拖动的事件,并将鼠标在Applet窗口中的坐标信息作为参数传递给drawImage()方法,用于在新的位置显示图像,从而实现拖动效果。本题中,第一处,getImage()方法应该有2个参数,第一个参数是getDocumentBase()方法的返回值,即图像文件的路径;第二处,drawImage()方法最后一个参数应该是this,确定是在当前运行的对象中绘制图像;第三处,应该调用repaint()方法,进行重画,而不是paint()方法。
转载请注明原文地址:https://jikaoti.com/ti/IkkiFFFM
0

最新回复(0)