• 下面是一个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;
    public void init() {
    btnURL = new ButtonURL("新浪网","http://www.sina.com.cn/");
    btnURL = new ButtonURL("163","http://www.163.com/");
    btnURL = new ButtonURL("搜狐","http://www.sohu.com/");
    GridLayout gl = new GridLayout(1,3);
    getContentPane().setLayout(gl);
    for (int i = 0; i < btnURL.length; i++) {
    btnURL.addActionListener(this);
    getContentPane().add(btnURL);
    }
    }
    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类的扩展
  • 2021年07月15日 21时44分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

    手机版 手机端
    Powered by 日新微博 © 2018 - 2020 日新网