下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,单击按钮,可以在文本区已有的文本基础上追加显示10条“欢迎您,参加Java考试!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。源程序文件代码清单如下;import javax.swing.*;import java.awt.*;import java.awt.event.*;<applet code="ex13_

题目

下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,单击按钮,可以在文本区已有的文本基础上追加显示10条“欢迎您,参加Java考试!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

注意:不改动程序的结构,不得增行或删行。

源程序文件代码清单如下;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

<applet code="ex13_3.class" width=800 height=400>

</applet>

public class ex13_3 extends JApplet

{

JButton jb = new JButton("Add Text");

JTextPane jtp = new JTextPane();

public void init()

{

jb.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

for(int i=1; i<10; i++)

jtp.getText(jtp.setText()+

"欢迎您,参加Java考试!");

}

});

Container cp = getContentPane();

cp.add(new JScrollPane(jtp));

cp.add(BorderLayout. SOUTH, jtp);

}

public static void main(String args[])

{

ex13_3 obj13_3=new ex13_3();

String str = obj13_3.getClass().toString();

if(str.indexOf("class") !=-1)

str=str.substring(6);

JFrame. frm = new JFrame(str);

frm.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent we)

{

System.exit(0);

}

});

frm.getContentPane ().addiex13 3);

frm.setSize(300, 400);

frm.setVisible(true);

}

}

ex13_3.html

<HTML>

<HEAD>

<TITLE>ex13_3</TITLE>

</HEAD>

<BODY>

<applet code="ex13_3.class" width=800 height=400>

</applet>

</BODY>

</HTML>


相似考题
更多“下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,单击按钮,可以在文本区已有的文本基础上追加显示10条“欢迎您,参加Java考试!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。源程序文件代码清单如下;import javax.swing.*;import java.awt.*;import java.awt.event.*;<applet code="ex13_”相关问题
  • 第1题:

    下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    import java.awt.*;

    import java.applet.*;

    import java.1ang*;

    public class exl3_3 extends Applet{

    private TextField tf;

    private Button btn;

    public void init(){

    tf=new TextField(25);

    add(tf);

    btn=new Bunon("统计");

    add(btn);

    resize(250,200);

    }

    pubhc void paint(Graphics g){

    Stling str=tf.genText();

    shon cnt[]=new shon[65536];

    int i;

    int n = 50;

    for(i=0;i<65536;i++)

    cat[i]=0;

    for(i=0;i<str.length();i++)

    cnt[i]++;

    for(i=0;i<65536;i++)//对数组Cnt[]进行初始化

    if(cnt[i]>=0){

    g.drawString(i+"出现"+cnt[i]+"次",50,n);

    n+=20;

    }

    }

    public boolean action(Eyent e,Object o){

    if(o=="统计"){

    repaint();

    return true;

    }

    else

    return false;

    }

    }

    ex13_3.html

    <HTML>

    <HEAD>

    <TITLE>ex13_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex13_3.class"width=800 height=400>

    </applet>

    </BODY>

    </HTML>


    正确答案:cnt[str.charAt(i)]++ cnt[i]>0 g.drawString((char)i+"出现"+cnt[i]+"次"50n)
    cnt[str.charAt(i)]++ cnt[i]>0 g.drawString((char)i+"出现"+cnt[i]+"次",50,n)

  • 第2题:

    下面是一个Applet程序,其功能是建立两个文本区域,一个为编辑区,一个为只读区;建立两个按钮,一个实现将编辑区中被鼠标选定的文本内容复制到只读区中,一个实现将只读区的全部文本内容清空。请更正题中带下划线的部分。

    注意:不改变程序的结构,不得增行或删行。

    import java.awt.*;

    import java.applet.*;

    /*

    <applet code="exl4_3.class" width=800 height=400>

    </applet>

    */

    public class exl4_3 extends Applet

    {

    private Button okBtn, clearBtn;

    private String strMessage;

    private TextArea tArea1, tArea2;

    public void init()

    {

    strMessage="Hello! Welcome to the test! \n" +"Wish you good luck!";

    tArea1=new TextArea(10,25);

    tArea1.setText(strMessage);

    tArea2=new TextArea(10,25);

    tArea2.setEditable(true);

    kBtn=new Button("Copy");

    clearBtn=new Button("Clear");

    add(tArea1);

    add(tArea2);

    add(okBtn);

    add(clearBtn);

    }

    public boolean action(Event e,Object o)

    {

    if(e.target= =okBtn)

    tArea1.setText(tArea2.getSelectedText());

    else if(e.target= =clearBtn)

    tArea1.setText("");

    return ture;

    }

    }

    exl4_3.html

    <HTML>

    <HEAD>

    <TITLE>exl4_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="exl4_3.class"width=800 height=400>

    </applet>

    </BODY>

    </HTML>


    正确答案:tArea2.setEditable(false) tArea2.setText(tArea1.getSelectedText()) tArea2.setText("")
    tArea2.setEditable(false) tArea2.setText(tArea1.getSelectedText()) tArea2.setText("") 解析:本题主要考查Applet窗口、其事件处理机制以及对文本区域的相关操作。解题关键是熟悉TextArea的基本方法,如setEditable()方法就是用来确定编辑模式的一个重要的方法,并且需要明确题目要求的两个文本区域的区别和联系,根据不同的事件,来对这两个文本区域进行操作。本题中,第1个空,将第2个文本区域tArea2的编辑模式设定为只读,注意参数为false,因为默认的编辑模式设定为可编辑的,用true表示,所以参数应该是false;第2个空,响应单击Copy按钮事件的语句应该将第1个丈本区tArea1的被选择的文本内容取出放入第2个文本区tArea2中;第3个空,响应单击Clear按钮事件的语句应该将第2个文本区tArea2中的所有文本内容清空。

  • 第3题:

    下面的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(picxPosyPos200180this); pic=getImage(getDocumentBase()"hua.jpg"); repaint();
    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();语句功能是重新显示图片。

  • 第4题:

    下面是一个Applet程序,其功能是有两个按钮,分别为First和Second,以及一个Label构件。要求单击 First时能在Label中显示出"Command:First",而单击Second时能显示出"Command:Second",要求只能重载一次 actionPerformed()方法,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    源程序文件代码清单如下:

    import java.awt.*;

    import java.awt.event.*;

    import java.applet.*;

    /*

    <applet code=ex04_3.class width=800 height=400>

    </applet>

    */

    Public class ex04_3 extends Applet implements ActionListener

    {

    private String str="ok";

    private Label l;

    private Button btn;

    public void init()

    {

    setLayout(null);

    l=new Label(str);

    l.reshape(10,10,100,30);

    add(l);

    btn=new Button("First");

    btn.reshape(10,50,60,20);

    l.addActionListene(this);

    add(btn);

    btn=new Button("Second");

    btn.reshape(10,100,60,20);

    btn.setActionCommand("First");

    btn.addActionListener(this);

    add(btn);

    }

    public void actionPerformed(ActionEvent ae)

    {

    str="Command:"+ae.getActionCommand();

    btn.setText(str);

    }

    }

    ex04_3.html

    <HTML>

    <HEAD>

    <TITLE>ex04_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex2_3.class" width=800 height=400>

    </applet>

    </BODY>

    </HTML>


    正确答案:btn.addActionListener(this) btn.setActionCommand("second") l.setText(str)
    btn.addActionListener(this) btn.setActionCommand("second") l.setText(str) 解析:本题主要考查Java语言中高级事件 AcfionEvent和AWT基本构件Label的常用方法的使用。解题关键是熟练掌握动作事件 ActionEvent和Label构件的常用方法。在本题中,第1处,明确注册的事件监听器是监听按钮的,而不是Label;第2处,调用ActionEvent的setActionCommand()方法改变了ActionCommand,使按下Second按钮时显示 "Command:second",而不是"Command:First";第3处,调用Label的setText()方法,而不是 Button的方法。程序运行结果如下图所示。

  • 第5题:

    下面是一个Applet程序,其功能是绘制三维矩形以使该矩形面凹下,并将图像放入凹下的矩形面中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    源程序文件代码清单如下:

    import java.awt.*;

    import java.applet.*;

    import java.awt.image.*;

    import java.util.*;

    import java.net.*;

    /*

    <applet code="ex01_3.class"width=800 height=400>

    </applet>

    */

    public class ex01_3 extends Applet

    {

    private Image IMG nClick=over(this) title=放大;

    public void init()

    {

    URL url=getCodeBase();

    IMG nClick=over(this) title=放大=getImage(url,"ex01_3.gif");

    MediaTracker mt=new MediaTracker();

    mt.addImage(IMG nClick=over(this) title=放大,1);

    try

    {

    mt.waitForAll();

    } catch(Exception e)

    {

    e.printStackTrace();

    }

    setBackground(Color.black);

    }

    public void paint(Graphics g)

    {

    int thick=3,x=10,y=10;

    g.drawImage(IMG nClick=over(this) title=放大,x,y);

    g.setColor(Color.lightGray);

    int w = IMG nClick=over(this) title=放大.getWidth(this);

    int h = IMG nClick=over(this) title=放大.getHeight(this);

    for(int i=0;i<thick;i++)

    g.draw3DRect(x,y,w+(a*i),true);

    }

    }

    ex01 3.html

    <HTML>

    <HEAD>

    <TITLE>ex01_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex01_3.class"width=800 height=400>

    </applet>

    </BODY>

    </HTML>


    正确答案:new MediaTracker(this) g.drawImage(imgxythis) g.draw3DRect(--x--yw+(2*i)h+(2*i)false)
    new MediaTracker(this) g.drawImage(img,x,y,this) g.draw3DRect(--x,--y,w+(2*i),h+(2*i),false) 解析:本题主要考查Applet图形绘制和图像显示。解题的关键是掌握绘制三维矩形的基本方法,掌握MediaTracker的基本用法,熟悉图形界面的坐标分布以及通过简单的方法来获得坐标。本题中,第1处,MediaTracker类的对象初始化需要将this指针作为参数传递给该类的构造函数;第2处,Graphics类的对象g调用drawImage()方法显示从磁盘文件中读取的Image对象,第4个参数需要将this作为参数传递给该方法;第3处,g调用draw3DRect()方法绘制三维矩形,最后一个参数为false表示矩形是凹下的,相反为凸起,第1个和第2个参数做递减是为了让显示效果看起来是矩形的左上方和图像的左上方有一定的距离,让人感觉矩形将图像包含在内。程序运行结果如下。

  • 第6题:

    下面是一个Applet程序,程序的功能输出一个彩色窗体。请改正程序中的错误(有下划线的语句),使程序能输出正确结果。

    注意:不改动程序的结构,不得增行或删行。

    程序的输出结果为:

    import java.awt.*;

    import java.awt.image.*;

    import java.applet.Applet;

    public class MemoryImage extends Applet

    {

    Image IMG nClick=over(this) title=放大;

    public void init()

    {

    Dimension d=getSize();

    int w=d.width,h=d.height;

    int pix[ ]=new int[w*h];

    int index=0;

    for(int y=0;y<h;y++)

    for(int x=0;x<w;x++)

    {

    int red=(x|y)&&0xff;

    int green=(x*2|y*2)&0xff;

    int blue=(x*4|y*4)&0xff;

    pix[index++]=(255<<24)|(red<<16)|(green<<8)|blue;

    }

    IMG nClick=over(this) title=放大=createImage(new FilteredImageSource(w,h,pix, 0,w));

    }

    public void paint(Graphics g)

    {

    g.drawImage(IMG nClick=over(this) title=放大, 0,0,super);

    }

    }

    ex36_3.html:

    <html>

    <head>

    <title>A Simple Program</title>

    </head>

    <body>

    <applet code=" MemoryImage.class" width=800 height=400>

    </applet>

    </body>

    </html>


    正确答案:int red=(x|y)&0xff; IMG onClick=over(this) title=放大=createImage(new MemoryImageSource(whpix0w)); g.drawImage(IMG onClick=over(this) title=放大00this);
    int red=(x|y)&0xff; IMG nClick=over(this) title=放大=createImage(new MemoryImageSource(w,h,pix,0,w)); g.drawImage(IMG nClick=over(this) title=放大,0,0,this); 解析:本题主要考查JavaApplet程序的设计。解答本题的关键是掌握MemoryImageSource(int width,int height,int pixel[],int offset,int scanLineWidth)方法的使用;其中width和height指明图像的大小,pixel中包含每个像素点的值,scanLineWidth指明图像中每行的像素数。在本题中,int red=(x|y)&0xff;语句的功能是定义变量red使其值为(x|y)&0xff,IMG nClick=over(this) title=放大=createImage(new MemoryImageSource(w,h,pix,0,w));语句的功能是生成图像,g.drawImage(IMG nClick=over(this) title=放大,0,0,this);语句的功能是在指定的Applet显示区内画出图像。

  • 第7题:

    下面是一个Applet程序,其功能是在图形用户界面中实现打印任意行数的杨辉三角形,编写一个含有整型形式参数的方法,此方法打印杨辉三角形,打印的行数由形式参数指定。编写Applet程序接受用户输入的整数,作为实际参数传递并调用上面的方法,要求图形用户界面上包含一个文本区作为输入参数的入口,一个带有纵向滚动条的文本面板作为输出打印结果的区域,一个按钮,点击则完成打印。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    /*

    <applet code="exll_3.class" width=800 height=400 >

    </applet>

    */

    public class exll_3 extends JApplet

    private JButton jb = new JButton("OK");

    private JTextPane jtp = new JTextPane();

    private JTextField itl=new JTextField(8);

    private int n=15;

    public void init() {

    jb.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e){

    n=jtf.getText();

    jtp.setText( "" );

    for(int i = n-1; i>=0;i--){

    String s = "";

    for(int j = 0; j < i; j++)

    s += " ";

    for(int j = 0; j < n; j++)

    s + = "*";

    jtp.setText(s+"\n");

    }

    }

    });

    Container cp = getContentPane();

    cp.add(BorderLayout.NORTH,jtf);

    cp.add(BorderLayout.CENTER,new JScrollPane(jtp));

    cp.add(BorderLayout.SOUTH, jb);

    }

    public static void main(String[] args) {

    ex11_3 obj11_3=new ex11_3();

    String str = obj11_3.getClass() .toString();

    if(str.indexOf("class") != -1)

    str= str.substring(6);

    JFrame. frm = new JFrame(str);

    frm.addWindowListener(new WindowAdapter() {

    public void windowClosing(WindowEvent we) {

    System.exit (0);

    }

    });

    frm.getContentPane().add(obj11_3);

    frm.setsize(300, 500);

    frm.setVisible(true);

    }

    }

    ex11_3.html

    <HTML>

    <HEAD>

    <TITLE>ex11_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex11_3.class" width=800 height=400 >

    </applet>

    </BODY>

    </HTML>


    正确答案:n=Integer.parseInt(jtf.getText()) int j=i;jn;i++ jtp.getText()+s+”\n"
    n=Integer.parseInt(jtf.getText()) int j=i;jn;i++ jtp.getText()+s+”\n" 解析:本题主要考查swing图形用户界面设计和Applet窗口相结合解决一些实际问题的综合应用。解题关键是熟悉swing的基本构件库,包括JFrame,JTextPane,JButton以及swing的事件机制,还需要熟悉swing和Applet应用相结合的程序设计方法,并且要会设计一些解决简单问题的算法,杨辉三角形就是一例。本题中,第一处,对象jd调用方法getText()得到的是文本面板中的字符串类型的数据,而n是整形数据类型,因此需要做数据类型转换;第二处,循环变量j应该从外层循环变量i开始一直到n,否则输出的“*”数目不变;第三处,应该在已有的输出结果之上在输出一行新的串,因此需要加上jip.getText()。

  • 第8题:

    将下面的程序补充完整。

    注意:不改动程序结构,不得增行或删行。

    import java.appplet.Applet;

    import java.awt.Graphics;

    public class ex1 extends Applet

    {

    public void paint(Graphics______)

    {

    int i=682;

    gap.drawstring(Integer.______(i),20,60);

    }

    }


    正确答案:gap toString
    gap toString 解析:本题考查图形用户界面和字符串的使用。paint()方法有一个参数gap是Graphics类的实例,当然gap是程序员自己起的名字,你也可以定义为abc,这都无妨,该实例由浏览器生成,它包含了Applet图形上下文信息,通过它向Applet中显示信息,该对象相当于 Applet的画笔。在调用paint()方法时,由浏览器将该对象传给paint()方法。由于在方法 drawstring()前程序已经给出了对象名gap,因此,第1空填写gap。toString()方法是Object自带的一个方法,用于返回该对象(在本题中是gap)信息的字符串,该字符串与对象相同类型。

  • 第9题:

    下面是一个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>


    正确答案:extends repaint() paint(g)
    extends repaint() 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的重新显示。程序的运行结果如下。

  • 第10题:

    下面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Labe1构件。要求点击First时则能在 Labe1中显示出Command:First,而点击Second时则能显示出Command:Second,要求只能使用重载一次actionPerformed()方法。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.awt.*;

    import java.awt.event.*;

    import java.applet.*;

    /*

    <applet code=ex2_3.class width=800 height=400>

    </applet>

    */

    public class ex2_3 extends Applet implements ActionListener {

    private String str="ok";

    private Labe1 1;

    private Button btn;

    public void init() {

    setLayout(null);

    1=new Label(str);

    1.reshape(10, 10, 150, 30);

    add(1);

    btn = new Button("First");

    btn.reshape(10, 50, 60, 20);

    1.addActionListener(this);

    add(btn);

    btn = new Button("Second");

    btn.reshape(10, 100, 60, 20);

    btn.setActionCommand("First");

    btn.addActionListener(this);

    add(btn);

    }

    public void actionPerformed(ActionEvent ae) {

    str="Command: " +ae.getActionCommand();

    btn.setText(str);

    }

    }

    ex2_3.htm1

    <HTML>

    <HEAD>

    <TITLE>ex2_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex2_3.class" width=800 height=400 >

    </applet>

    </BODY>

    </HTML>


    正确答案:btn.addActionListener(this) btn.setActionCommand("second") 1.setText(str)
    btn.addActionListener(this) btn.setActionCommand("second") 1.setText(str) 解析:本题主要考查Java语言中高级事件ActionEvent和AWT基本构件Label的常用方法的使用。解题关键是熟练掌握动作事件ActionEvent和Label构件的常用方法。在本题中,第1处,明确注册的事件监听器是监听按钮的,而不是Label的;第 2处,调用ActionEvent的setActionCommand()方法改变了ActionCommand,使按下第二个按钮时显示Command:second而不是Command:First。第3处,调用Label的setText()方法,而不是Button的方法。

  • 第11题:

    下面是一个Applet程序,其功能是实现对JButton类的扩展,封装成上网助力一样的按钮类,每个按钮对象对应一个 URL地址,点击则访问相应的URL。要求在窗口中从上到下排列3个这样的按钮。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.net.*;

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    public class ex28_3 extends JApplet implements ActionListener {

    ButtonURL[] btnURL = new ButtonURL[3];

    public void init() {

    btnURL[0] = new ButtonURL("新浪网","http://www.sina.com.cn/");

    btnURL[1] = new ButtonURL("163","http://www.163.com/");

    btnURL[2] = new ButtonURL("搜狐","http://www.sohu.com/");

    GridLayout gl = new GridLayout(1,3);

    getContentPane().setLayout(gl);

    for (int i = 0; i < btnURL.length; i++) {

    btnURL[i].addActionListener(this);

    getContentPane().add(btnURL[i]);

    }

    }

    public void actionPerformed(ActionEvent ae) {

    ButtonURL btnClick =ae.getSource();//获取发生事件的对象

    try {

    URL load = new URL(btnClick.strAddr);

    getAppletContext().showDocument(strAddr);

    } catch (MalformedURLException e) {

    showStatus("Bad URL:" + btnClick.strAddr);

    }

    }

    }

    class ButtonURL extends JButton {

    String strAddr;

    ButtonURL(String strLabel, String strAddress) {

    super(strLabel);

    strAddr = strAddress;

    }

    }

    ex28_3, html

    <HTML>

    <HEAD>

    <TITLE>ex28_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex28_3.class" width=800 height=400 >

    </applet>

    </BODY>

    </HTML>


    正确答案:new GridLayout(31) (ButtonURL)ae.getSource() showDocument(load)
    new GridLayout(3,1) (ButtonURL)ae.getSource() showDocument(load) 解析:本题主要考查面向对象的基本程序设计思想和Applet事件处理机制及Applet和Application相结合的程序设计。解题关键是熟悉swing的基本构件,并会根据需要进行扩展,这里的ButtonURL类就是对JButton类的扩展,熟悉布局的基本操作等。本题中,第1处,按题目要求,应该是纵向排列的3个按钮;第2处,ae对象调用getSource()方返回的是JButton类的对象,这里需要ButtonURL的对象,所以需要进行转换;第3处,参数错误,应该是对象btnClick的成员变量strAddr的值。

  • 第12题:

    下面是一个Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将Applet中的显示的“请先输入两个待比较的整数”,改为“两个整数中最大值:x”,x是两个数中的最大值。请改正程序中的错误(有下划线的语句)并将程序填写完整,使程序能输出正确的结果。

    注意:不改动程序结构,不得增行或删行。

    import java.applet.*;

    import java.awt.*;

    import java.awt.event.*;

    public class FindMax extends Applet______

    {

    Label result;

    TextField in1,in2;

    Button btn;

    int a=0,b=0,max;

    public void int()

    {

    result=new Label(“请先输入两个待比较的整数”);

    in1=new TextField(5);

    in2=new TextField(5);

    btn=new Button("比较");

    add(in1);

    add(in2);

    add(btn);

    add(result);

    btn.addActionListener(this);

    }

    Public void actionPerformed(ActionEvent e)

    {

    a=in1;

    b=in2;

    if(a>b)

    max=a;

    else

    max=b;

    btn.setText(“两个数中最大值:”+max);

    }

    }

    Findmax.html:

    <HTML>

    <HEAD>

    <TITLE>A Simple Program</TITLE>

    </HEAD>

    <BODY>

    <applet code="FindMax.class"width=800 height=400>

    </applet>

    </BODY>

    </HTML>


    正确答案:implement ActionListener 将a=in1;改为a=Integer.parseInt(in1.getText()); 将b=in2;改为b=Integer.parseInt(in2.getText()); 将btn.setText(“两个数中最大值:”+max);改为result.setText("两个数中最大值:"+max);
    implement ActionListener 将a=in1;改为a=Integer.parseInt(in1.getText()); 将b=in2;改为b=Integer.parseInt(in2.getText()); 将btn.setText(“两个数中最大值:”+max);改为result.setText("两个数中最大值:"+max); 解析:本题考查文本框、Applet操作和事件处理。按钮可以引发动作事件,当用户单击一个按钮时就引发了一个动作事件,希望相应按钮引发的动作事件的程序必须把按钮注册给实现了ActionListener接口的动作事件监听者。因此,第1空应该填入的是implement ActionListener。为了接收用户输入的两个整数,需要获得文本框的内容,并将其转化为整数。而a=in1;b=in2;两个赋值语句直接将文本框对象等同于整数,不能得到正确的结果。这两句应该改为a=Integer.parseInt(in1.getText());b=Integer.parseInt(in2.getText());,其中,getText()获得文本框的内容,返回字符串。而Integer.parseInt(String)将字符串对象转换为整数。另外,根据题意,是要在Applet上的“请先输入两个待比较的整数”改为“两个整数中最大值:x”。其中前一个引号中的话是显示在标签中的,因此btn.setText("两个整数中最大值:x"+max);中的操作对象有误,应该将按钮对象btn改为标签对象result。

  • 第13题:

    下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用Swing的构件建立图形用户界面。主要包括一个文本区域,用于显示计数器结果:两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    源程序文件代码清单如下。

    import javax.swing.*;

    import java.awt.*;

    import java.awt.event.*;

    /*

    <applet code="ex19_3.class" width=800 height=400>

    </applet>

    */

    public class ex19_3 extends JApplet

    {

    private JTextField jtf=new JTextField(15);

    private JButton Hold=new JButton("Hold");

    private JButton resume=new JButton("Resume");

    private ex19_3th obj19_3th=new ex19_3th();

    class ex19_3th extends Thread

    {

    private int cnt=0;

    private boolean bIsHold=false;

    public ex19_3th() {start();}

    public void hold()

    {

    bIsHold=true;

    }

    public synchronized void fauxResume()

    {

    bIsHold=false;

    wait ();

    }

    public void run()

    {

    while (true)

    {

    try {

    sleep(150);

    synchronized(this)

    {

    while(bIsHold)

    notify();

    }

    }catch(InterruptedException ie)

    {

    System.err.println("Interrupted");

    }

    jtf.setText(cnt);

    }

    }

    }

    public void init()

    {

    Container cp=getContentPane();

    cp.setLayout(new FlowLayout());

    cp.add(jtf);

    Hold.addActionListener(

    new ActionListener()

    {

    public void actionPerformed(ActionEvent ae)

    {

    obj19_3th.hold ( );

    }

    });

    cp.add(Hold);

    resume.addActionListener

    (

    new ActionListener()

    {

    public void actionPerformed(ActionEvent e)

    {

    obj19_3th.fauxResume();

    }

    &n


    正确答案:notify() wait() jtf.setText.(Integer.toString(cnt++))
    notify() wait() jtf.setText.(Integer.toString(cnt++)) 解析:本题主要考查图形用户界面,Swing以及线程同步、共享、死锁相结合的综合应用。解题关键是熟悉wait()方法和notify()方法的含义,wait()必须被声明为synchronized,这样它才能拥有对象锁。fauxResume()把bIsHold标志设为false,并调用notify(),为了唤醒 synchronized子句中的wait(),notify()也必须被声明为synchronized,这样才能在调用notify()之前获得对象锁,然后该对象锁才能在wait()执行时被运用。本题中,第1和第2处,应该在bIsHold为true时调用wait(),而在 fauxResume()中调用notify();第3处,需要对 int类型做转换才能够作为String类型输出,并且要对计数器变量cnt做累加。程序运行结果如下。

  • 第14题:

    下面是一个Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较大小”按钮后,将 Applet中显示的“请先输入两个待比较的整数”,改为“两个整数中最大值是:x”,x是两个数中的最大值。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.applet.*;

    import java.awt.*;

    import java.awt.event.*;

    /*

    <applet code=LookForMax width=800 height=400>

    </applet>

    */

    public class LookForMax extends Applet implements ActionListener{

    Label result ;

    TextField inl,in2;

    Button btn;

    int a=0,b=0,max=0;

    public void init()

    {

    result=new Label ("请先输入两个待比较得整数");

    in1=new TextField(5);

    in2=new TextField(5);

    btn=new Button("比较大小");

    add(in1);

    add(in2);

    add(btn);

    add(result);

    btn.addActionListener(supper);

    }

    public void actionPerformed(ActionEvent e){

    a=Integer.parseInt(in1);

    b=Integer.parseInt(in2);

    if(a>b)

    max=a;

    else

    max=b;

    result, setText ( "两个数中最大值是:"+max);

    }

    }

    LookFormax.html:

    <html>

    <head>

    <title>A Simple Program</title>

    </head>

    <body>

    <applet code="LookForMax.class" width=800 height=400>

    </applet>

    </body>

    </html>


    正确答案:this in1.getText() in2.getText()
    this in1.getText() in2.getText() 解析: 本题主要考查JavaApplet程序的编写、java.awt包的基本组件的使用及supper和this关键字的使用。解答本题的关键是熟练掌握Java Applet程序的编写、java.awt包的基本组件的使用及supper和this关键字的使用。Applet(小程序)是一种很重要的Java程序,是工作在Internet的浏览器上或借助JDK中的appletviewer来工作的Java程序。编写Applet小程序必须要用到java.appelt包中的Applet类。java.applet.Applet是java.awt.Panel的子类。
    在本题中,public class LookForMax extends Appkt implements ActionListener语句的功能是声明一个继承Applet类且实现 ActionListener接口的类LookForMax来实现程序功能,btn.addActionListener(this);语句的功能是为按钮btn对象注册一个事件监听器this(this是指当前LookForMax的对象)a=Integer.parseInt(in1.getText());和a=Integer.parseInt(in1.getText());语句的功能是把从文本框in1和in2获得的字符型数据转换成基本整型数据,并把这两个值分别赋给变量a和b。

  • 第15题:

    下面是一个Applet程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值a的输入,可以判断输入的数字是否符合要求,一个ok按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为sin()的参数x。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.awt.*;

    import java.awt.event.*;

    import java.applet.Applet;

    import java.lang.Math.*;

    /*

    <applet code="ex18_3.class" width=800 height=400 >

    </applet>

    */

    public class ex18_3 extends Applet implements ActionListener {

    Panel pane=new Panel();

    drawWnd dw;

    Label 11 = new Label("峰值");

    TextField tf1 = new TextField(15);

    Button btn = new Button("OK");

    private float a=0;

    public void init(){

    pane.setLayout(new FlowLayout(FlowLayout.CENTER,25,5));

    pane.add(11);

    pane.add(tf1);

    pane.add(btn);

    btn.addActionListener(this);

    add("North",pane);

    dw=new drawWnd();

    add("South",dw);

    }

    class drawWnd extends Canvas {

    drawWnd() {

    setSize(300,100);

    setBackground(Color. GRAY);

    }

    public void paint(Graphics g) {

    g.setColor(Color.GREEN);

    for(int i=0;i<getSize().width-1;i++){

    int y=0;

    int y1=y+(int) (Math.sin(i)*a);

    int y2=y1+(int) (a*Math.sin(i+1));

    g.drawLine(i,y1,i+1,y2);

    }

    }

    }

    public void actionPerformed(ActionEvent ae) {

    try{

    a=Integer.parseInt(tf1.getText());

    dw.repaint();

    }

    catch(NumberFormatException nfe){

    tf1.setText("error!");

    }

    }

    }

    ex18_3.html

    <HTML>

    <HEAD>

    <TITLE>ex18_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex18_3.class" width=800 height=400 >

    </applet>

    </BODY>

    </HTML>


    正确答案:y=getSize().height/2 int y2=y+(int)(a*Math.sin(i+1)) a=Float.parseFloat(tf1.getText())
    y=getSize().height/2 int y2=y+(int)(a*Math.sin(i+1)) a=Float.parseFloat(tf1.getText()) 解析:本题主要考查Applet的图形绘制,Applet的生命周期以及其事件处理机制。解题关键是熟悉Applet窗口中坐标的布局,会使用TextField,Canvas,Button等构件,会使用内部类继承Canvas类,实现在画布中绘制图像的方法,并通过在主程序中结合事件处理机制来调用该方法。本题中,第一处,由于画布中的纵坐标是从上向下从0开始的,因此需要有一个相对坐标原点,这里取画布的一半;第二处,计算下一点的坐标,应该是相对于坐标原点y而言的坐标值,不应该是y1;第三处,a为float类型的变量,因此要用Float类的类型转换方法。

  • 第16题:

    下面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Label构件。要求单击First时则能在Label中显示出Command: First,而单击Second时则能显示出Command: Second,要求只能使用重载一次actionPerformed()方法。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.awt.*;

    import java.awt.event.*;

    import java.applet.*;

    /*

    <applet code=ex3_3.class width=800 height=400>

    </applet>

    */

    public class ex3_3 extends Applet implements ActionListener

    {

    private String str="ok";

    private Label 1;

    private Button btn;

    public void init( )

    {

    setLayout(null);

    1=new Label(str);

    1.reshape(10,10,150,30);

    add(1);

    btn=new Button("First");

    btn.reshape(10,50,60,20);

    1.addActionListener(this);

    add(btn);

    btn=new Button("Second");

    btn.reshape(10,100,60,20);

    btn.setActionCommand("First");

    btn.addActionListener(this);

    add(btn);

    }

    public void actionPerformed(ActionEvent ae)

    {

    str="Command:"+ae.getActionCommand( );

    btn.setText(str);

    }

    }

    ex3_3.html

    <HTML>

    <HEAD>

    <TITLE>ex3_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex3_3.class"width=800 height=400>

    </applet>

    </BODY>

    </HTML>


    正确答案:Btn.addActionListener(this) Btn.setActionCommand(“second”) 1.setText(str)
    Btn.addActionListener(this) Btn.setActionCommand(“second”) 1.setText(str) 解析:本题主要考查Java语言中高级事件ActionEvent和AWT基本构件Label的常用方法的使用。解题关键是熟练掌握动作事件ActionEvent和Label构件的常用方法。在本题中,第1处,明确注册的事件监听器是监听按钮的,而不是Label的;第2处,调用ActionEvent的setActionCommand()方法改变了ActionCommand,使按下第二个按钮时显示Command: second而不是Command: First。第3处,调用Label的setText()方法,而不是Button的方法。

  • 第17题:

    下面是一个Applet程序,其功能是进行整数加法运算,要求有3个文本区域,2个作为输入,一个作为输出,并且有异常处理来判断输入的数字是否符为整型,如果是则进行运算,否则抛出异常并显示于第3个文本区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.awt.*;

    import java.awt.event.*;

    import java.applet.Applet;

    /*

    <applet code="ex17_3.class" width=800 height=400 >

    </applet>

    */

    public class ex17_3 extends Applet implements ActionListener {

    TextField tf1 = new TextField(5);

    TextField tf2 = new TextField(5);

    TextField tf3 = new TextField(5);

    Label 11 = new Label("+");

    Label 12 = new Label("=");

    Button btn= new Button("相加");

    public void init(){

    add(11);

    add(tf1);

    add(tf2);

    add(12);

    add(tf3);

    add(btn);

    btn.addActionListener(this);

    }

    public void actionPerformed(ActionEvent ae) {

    try{

    int a=Integer.parseInt(tf1.getText());

    int b=Integer.parseInt(tf2.getText());

    int x = a + b;

    tf2.setText(Integer.toString(x));

    }

    catch(NumberFormatException nfe){

    tf3.setText("error!");

    }

    }

    }

    ex17_3.html

    <HTML>

    <HEAD>

    <TITLE>ex17_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex17_3.class. width=800 height=400 >

    </applet>

    </BODY>

    </HTML>


    正确答案:add(tf1) add(11) tf3.setText(Integer.toString(x))
    add(tf1) add(11) tf3.setText(Integer.toString(x)) 解析:本题主要考查Applet的编程方法和执行过程,Applet的生命周期和AWT的事件处理模型。解题关键是熟悉上述3个知识点并且能够灵活运用Applet和AWT的基本接口和基本构件。本题中,第一处和第二处应该交换位置,否则Label和TextField的位置次序错误;第三处应该是第三个TextField的对象tf3调用setText()方法,而不是tf2。

  • 第18题:

    请完成下列Java程序。实例listener是监听器,frm是事件源,fr上发生的事件委托tat进行处理。程序的执行结果是显示一个蓝色的窗口,单击关闭按钮,可关闭窗口。

    注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。

    源程序文件代码清单如下:

    import java.awt.*;

    import java.awt.event.*;

    public class BlueWindow

    {

    public static void main(String args[])

    {

    Frame. frm=new Frame. ("欢迎参加Java考试!");

    TheAdapterTest listener=new TheAdapterTest();

    frm. ______;

    frm.setSize(200,200);

    frm.setBackground(Color.blue);

    frm. ______;

    }

    }

    class TheAdapterTest extends WindowAdapter

    {

    public void windowClosing(WindowEvent e)

    {

    System.exit(1);

    }

    }


    正确答案:addWindowListener(listener) setVisible(true)
    addWindowListener(listener) setVisible(true) 解析:本题主要考查窗体事件的处理机制。解答本题的关键是熟悉Java语言的事件处理机制(事件、事件源和事件处理者)。在本题中,frm.addWindowListener(listener);语句的功能是为窗体对象注册监听器;frm.setVisible (true)语句的功能是使生成的窗体具有可见性,若frm.setVisible(false),则生成的窗体是不可见的。

  • 第19题:

    下面是一个Applet程序,其功能是分析任意输入的字符串,将字符串中由空格隔开的字串提取并显示出来。要求,窗口中有一个输入文本框,用于接受输入的字符串,一个按钮,点击则开始分析,分析结果用图形方式打印在窗口下面的区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    程序运行结果如下:

    import java.awt.*;

    import java.applet.*;

    import java.util.StringTokenizer;

    public class ex27_3 extends Applet{

    private TextField tf;

    private Button btn;

    public void init(){

    tf = new TextField(25);

    add(tf);

    btn= new Button("分析");

    add(btn);

    resize(250, 200);

    }

    public void paint(Graphics g){

    String str = tf.getText();

    StringTokenizer st = new StringTokenizer(tf);

    int n = 80;

    while (!st.hasMoreTokens()){

    String tem = st.nextToken();

    g.drawString(tem, n, 80);

    n += 20;

    }

    }

    public boolean action(Event e, Object o){

    if (o == "分析") {

    repaint();

    return true;

    }

    else

    return false;

    }

    }

    ex27_3.html

    <HTML>

    <HEAD>

    <TITLE>ex27_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex27_3.class" width=800 height=400

    </applet>

    </BODY>

    </HTML>


    正确答案:new StringTokenizer(str) St.hasMoreTokens() g.drawString(tem 80n)
    new StringTokenizer(str) St.hasMoreTokens() g.drawString(tem, 80,n) 解析:本题主要考查字符串的分割和Applet图形界面相结合的综合应用。解题关键是熟悉字符串的分割方法,使用 StringTokenizer的对象来对String类的对象进行分割。本题中,第1处,StringTokenizer类的构造方法应该以String类的对象作为入口参数;第2处,判断语句应该是当对象st中还有分割串的时候则继续进行;第3处,drawString()方法的参数第2个表示输出字符串起始位置的横坐标,第3个是纵坐标,如果n作为横坐标,则输出的字符串会发生重叠。

  • 第20题:

    下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。

    源程序文件清单如下:

    import java.awt.*;

    import java.applet.*;

    /*

    <applet code="ex11_3.class"width=800 height=400>

    </applet>

    */

    public class ex11_3 extends Applet

    {

    int[] x = {15,50,100,160,120,190 };

    int[] y = {15,100,30, 15, 80, 50 };

    public void init()

    {

    setBackground (Color. lightGray);

    }

    public void paint (Graphics g)

    {

    int[] y2 = new int[6];

    g. setColor (Color. red);

    Rectangle rect = getBounds();

    g.drawPolygon (x, y2,6);

    for(int i=0; i<6; i++)

    y2[i] = y[i] + (rect.height / 2);

    g. fillPolygon (x, y, 6);

    }

    }

    ex11_3. html

    <HTML>

    <HEAD>

    <TITLE>ex11_3</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex11_3.class" width=800 height=400 >

    </applet>

    </BODY>

    </HTML>


    正确答案:g.drawPolygon(xy6) y2[i]+=y[i]+(rect.height/2) g.fillPolygon(xy26)
    g.drawPolygon(x,y,6) y2[i]+=y[i]+(rect.height/2) g.fillPolygon(x,y2,6) 解析:本题主要考查Applet窗口编程和图形绘制的综合应用。解题关键是熟悉上述考点的基本要求,使用Graphics类的drawPolygon()和fillPolygon()方法绘制任意形状的图形,并且能结合数组进行编程实现。本题中第1处,第2个参数应该是y,而不是y2。y2还没有初始化;第2处,注意y2数组中的值是需要进行累加的,因此需要使用符号+=;第3处,fillPolygon()方法的第2个参数应该是y2,绘制新的图形,并填充,若是y则不能绘制新的图形。

  • 第21题:

    下面是一个Apple(程序,程序的功能是在Applet显示区内画一个动态的、多维的绿色椭圆环。本题主要是通过数学方法sin(),cos()画出一个圆环。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

    注意:不改动程序的结构,不得增行或删行。程序的执行结果:

    import java.awt.*;

    import java.awt.event.*;

    import java.applet.*;

    public class YuanHuan extends Applet

    {

    public void paint(Graphics g)

    {

    double w=getSize().width/2;

    double h=getSize().height/2;

    g.getColor(Color.green);

    for(double th=0;th<10;th+=0.00003)

    {

    double r=Math.cos(16*th)+th;

    double x=r*Math.cos(th)+w;

    double y=r*Math.sin(th)+h;

    g.drawOval((int)x-1,(int)y-1,3,3);

    }

    }

    public static void main(String args[ ])

    {

    Frame. f=new Frame("Draw");

    YuanHuan p=new YuanHuan();

    p.inti();

    p.start();

    f.add(p);

    f.setSize(400,300);

    f.addWindowListener(new WindowAdapter(){

    public void windowClosing(WindowEvent e)

    {

    System.out.exit(0);

    }

    });

    f. show ( );

    }

    }

    ex3 3_3. htm1:

    <html>

    <head>

    <title>A Simple Program</title>

    </head>

    <body>

    <applet code=" YuanHuan.class" width=800 height=400>

    </applet>

    </body>

    </html>


    正确答案:g.setColor(Color.green); p.init(); System.exit(0);
    g.setColor(Color.green); p.init(); System.exit(0); 解析:本题主要考查JavaApplet程序的编写、for循环语句和Java程序事件处理机制。解答本题的关键是熟练掌握Java Applet程序的编写和Java程序事件处理机制的知识。在本题中,g.setColor(Color.green);语句的功能是设置所画图形的颜色, p.init();语句的功能是初始化小程序Applet,System.exit(0);语句的功能是关闭窗口,结束小程序的运行。

  • 第22题:

    下面程序构造了一个Swing Applet,在下画线处填入正确的代码。

    import javax.swing.*;

    import java.awt.*;

    public class SwingApplet extends ______ {

    JLabel 1=new JLabel("This is a Swing Applet.");

    public void init() {

    Container contentPane=getContentPane();

    contentPane.add(1);

    }

    }


    正确答案:Japplet
    Japplet

  • 第23题:

    ●试题六

    【说明】

    下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示10条"Welcome to China"信息,并且文本区由滚动条控制文本的上下滚动。

    程序运行结果如图4所示。

    import javax.swing.*;

    import javA.awt.*;

    import javA.awt.event.*;

    /*

    <applet code="ex5_6.class" width=800 height=400 >

    </applet>

    图4

    */

    public class ex5_6 extends JApplet {

    JButton jb = new JButton("Add Text");

    JTextPane jtp = new JTextPane();

    public void init() {

    jb.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e){

    for(int i = 1; i < 10; i++)

    (1) + "Welcome to China!\n");

    }

    });

    Container cp = (2) ;

    cp.add(new JScrollPane(jtp));

    cp.add( (3) );

    }

    public static void main(String[] args) {

    ex5_6 obj5_6=new ex5_6();

    String str = obj5_6.getClass().toString();

    if(str.indexOf("class") !=-1)

    str = str.substring (6) ;

    JFrame. frm = new JFrame(str);

    frm.addWindowListener(new (4) {

    public void windowClosing(WindowEvent we) {

    System.exit(0);

    }

    });

    (5) .add(ex5_6);

    frm.setSize(300, 400);

    frm.setVisible(true);

    }

    }

    ex5_6.html

    <HTML>

    <HEAD>

    <TITLE>ex5_6</TITLE>

    </HEAD>

    <BODY>

    <applet code="ex5_6.class" width=800 height=400 >

    </applet>

    </BODY>

    </HTML>


    正确答案:

    ●试题六

    【答案】(1)jtp.setText(jtp.getText()(2)getContentPane()(3)BorderLayout.SOUTH, jb

    (4)WindowsAdapter()(5)frm.getContentPane()

    【解析】本题主要考查Appletswing结合进行图形用户界面设计的综合应用。解题关键是掌握swing的基本构件JTextPanel, JButton, JScrollPanel的用法,掌握BorderLayout布局管理器的使用方法,以及熟练掌握最基本的对象概念。本题中,JTextPanel2个基本的方法,setText()getText()的功能,熟悉这2个功能,则很容易就能将错误改正;应该是通过BorderLayout布局管理器在窗口的最下方添加一个JButton对象,需要清楚程序中每个对象所对应的类。