问答题

请完成下列Java程序:读取新浪首页文件的数据并且显示出来。要求编写JFrame扩展类,以String类的对象定义的url地址作为入口参数,该类实现根据url参数指定的地址进行连接和读取数据,并且能显示在1个文本区域内。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下:
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; public class ex25_2 { public static void main(String[] arg) { UrlFrame page = new UrlFrame("http://www.sina.com.cn"); page.show(); } } class UrlFrame extends JFrame { JTextArea jta = new JmextArea("正在读取文件…"); URL url; public UrlFrame(String strAddr) { super (strAddr); //使用父类的构造方法。 setSize(450, 300); JScrollPane jsp = new JScrollPane(jta); getContentPane().add(jsp); WindowListener wl = new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0); } }; addWindowListener(wl); try { url = new URL(strAddr); ____________________; } catch (MalformedURLException murle) { System.out.println("不合适的URL: "+ strAddr); } } void getData(URL url) { URLConnection con = null; InputStreamReader isr; BufferedReader readBuf; String strLine; StringBuffer strBuf = new StringBuffer(); try { con = this.url.openConnection(); con.connect(); jta.setText("打开连接..."); isr = new InputStreamReader(con.getInputStream( )); readBuf = new BufferedReader(isr); jta.setText("读取数据..."); while ((strLine = readBuf.readLine()) != null) strBuf.append(strLine + "\n"); _____________________________; } catch (IOException e) { System.out.println("IO 错误:" + e.getMessage()); } } }

【参考答案】

getData(url) jta.setText(strBuf.toString())[解析] 本题主要考查面向对象的基......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
下面是一个Applet程序,其功能是输入2个字符串,比较两者的长度。要求,窗口中有2个输入区,用于输入字符串,一个按钮点击实现比较,比较结果用绘图方式显示出来。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:import java.awt.*;import java.applet.*; *<applet code= ex25_3.class width=800 height=400 >< applet>* public class ex25_3 extends Applet{private TextField tf1;private TextField tf2;private Button btn;private String strOut;public void init(){Label 1 = new Label( 串1: );add(1);tf1 = new TextField(20);add(tf1);l = new Label( 串2: );add(1);tf2 = new TextField(20);add(tf2);btn = new Button( 比较 );add(btn);strOut = ;resize(250, 200);} public void paint(Graphics g){g.drawString(strOut, 30,150);}public boolean action(Event e, Object o){if (o == btn ){String str1 = tf1.getText();String str2 = tf2.getText();int result;result = str1.compare(str2);if (result > 0)strOut = 串1种字符数少于串2 ;else if (result == 0)strOut = 串1和串2长度一样 ;elsestrOut = 串1字符数多于串2 ;repaint ( ); 该方法主要用于applet的重新显示,它调用Update ()方法实现对于Applet的更新。return true;} elsereturn false;}}ex25_3.htm1<HTML><HEAD><TITLE>ex25_3< TITLE>< HEAD><BODY><applet code= ex25_3.class width=800 height=400 >< applet>< BODY>< HTML>