问题 问答题

下面是一个Applet程序,程序的功能是用鼠标画图。本题是通过单击鼠标后画出一个Java字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意;不改动程序的结构,不得增行或减行。 源程序文件代码清单如下; import java.awt.*; import java.awt.event.*; import java.applet.*; /* <applet code=SimpleHitMouse.java width=800 height=400> </applet> */ public class SimpleHitMouse implements Applet { private java.util.Vector points=new java.util.Vector(); public void init() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { points.add(new Point(e.getX(),e.getY()) paint(); } }); } public void update(Graphics g) }repaint(g); } public void paint(Graphics g) { for(int i=0;i<points.size();i++) { Point dot=(Point)points.elementAt(i); g.drawString("x",dot.x,dot.y); } } public static void main(String args[ ]) { Frame fram=new Frame("CelayTree"); SimpleHitMouse dot=new SimpleHitMouse(); dot.init (); dot.start (); fram.add ( "Center", dot ); fram.setSize( 400,300 ); fram.addWindowListener( new WindowAdapter(){ public void windowClosing( WindowEvent e ) { System.exit(0); } }); fram.show (); } } ex12_3.html: <html> <head> <title>A Simple Program</title> </head> <body> <applet code=" SimpleHitMouse.class" width=800 height=400> </applet> </body> </html>

答案

参考答案:

解析:extendsrepaint()paint(g) 本题主要考查Java Applet程序的编写、Java程序事件处理机制。解答本题的关键是熟练掌握Java Applet程序的编写和 Java程序事件处理机制的知识。编写Applet小程序必须要用到java.appelt包中的Applet类java.applet.Applet,java.awt.Panel的子类。在Applet中,Applet的显示更新是由一个专门的AWT线程控制的。与Applet显示相关的3个方法:④paint()方法,Applet的paint()方法具体执行Applet的绘制,该方法的定义为public void paint(Graphics g),参数g是 Graphics类的实例,该实例对象由浏览器生成,它包含了Applet的图形上下文信息,通过它向Applet中显示信息,该对象相当于 Applet的画笔:②update()方法,该方法的定义为public void update(Graphics g),update()方法用于更新Applet的显示,该方法将首先清除背景,再调用paint()方法完成Applet的具体绘制;③repain()方法,repaint()方法的定义为public void repaint(),该方法主要用于 Applet的重新显示,它调用update()方法实现对Applet的更新。在本题中,extends关键字用于继承父类,repaint()、paint()方法都用于Applet的重新显示。程序的运行结果如下。

多项选择题
单项选择题 配伍题