问题 问答题

[说明]以下程序实现了在applet里移动图形文件,仔细阅读代码和相关注释,将程序补充完整。[代码6-1] import j ava. awt. *; import j ava.awt.event.*; import java.applet. Applet; public class AppCIU extends Applet implements MouseMotionListener, MouseListener { Image IMG onClick=over(this) title=放大;// 声明 Image 类类型的变量 IMG onClick=over(this) title=放大 int x=70,y=60,posX=70,posY=60,dx,dy; public void init ( ) {IMG onClick=over(this) title=放大=getImage ( getCodeBase ( ) ,"mouse.gif" ); //载入影像addMouseListener ( this );addMouseMotionListener ( this );  } public void mousePressed ( MouseEvent e ) {dx=e.getX()-posX; //取得按下之点与基准点X方向的距离dy=e.getY()-posY; //取得按下之点与基准点Y方向的距离 } public void mouseDragged ( MouseEvent e ) { (1) (2) if ( dx>0 && dx<120 && dy>0 && dy<60 ) //如果指针落在图形上方{ Graphics g=getGraphics ( ); (3) }} public void paint ( Graphics g ) { (4) (5) (6) } public void mouseMoved ( MouseEvent e ) {}; public void mouseReleased ( MouseEvent e ) {}; public void mouseEntered ( MouseEvent e ) {}; public void mouseExited ( MouseEvent e ) {}; public void mouseClicked ( MouseEvent e ) {}; }

答案

参考答案:

解析:(1)x=e.getX()-dx;(2)y=e.getY()-dy;(3)update(g);(4)g.drawImage(IMG onClick=over(this) title=放大x,y,120,60,this);(5)posX=x;(6)posY=y; 注:其中(1)和(2)可互换。(5)和(6)可互换。 本题程序实现了在applet里移动图形文件。对于(1)为取得拖曳时基准点的X坐标[x=e.getX()-dx]; (2)取得拖曳时基准点的Y坐标[y=e.getY()-dy];(3)清空画面为背景颜色,再调用paint()[update(g)]; (4)将IMG onClick=over(this) title=放大画在applet上[g.drawImage(IMG onClick=over(this) title=放大,x,y,120,60,this);];(5)更新基准点的X坐标[posX=x;];(6)更新基准点的Y坐标[posY=y;]。

单项选择题
多项选择题