一聚教程网:一个值得你收藏的教程网站

热门教程

Java使用组件编写窗口实现网上文件下载

时间:2022-06-29 01:36:14 编辑:袖梨 来源:一聚教程网

如图

实现代码:

 

 代码如下复制代码

packagecom.rain.get;

importjava.awt.*;

importjava.awt.event.*;

importjava.net.*;

importjava.io.*;

importjavax.swing.*;

//从网络取得文件

publicclassGetFileDemoextendsJFrame{

  JTextField jtfUrl;//输入文件地址url

  JButton jbGetFile;//取文件按钮

  JLabel jlInfo;//显示提示信息

  publicGetFileDemo(){

    super("从网络取得文件");//调用父类构造函数

    Container container=getContentPane(); //得到容器

    jtfUrl=newJTextField(18);//实例化地址输入框

    jbGetFile=newJButton("取文件");//实例化按钮

    jlInfo=newJLabel();

    JPanel p=newJPanel();//实例化一个面板,用于容纳地址输入框和取文件按钮

    p.add(jtfUrl);//增加组件到面板上

    p.add(jbGetFile);

    container.add(p,BorderLayout.NORTH);//增加组件到容器上

    container.add(jlInfo,BorderLayout.CENTER);

    jbGetFile.addActionListener(newActionListener(){//按钮事件处理

      publicvoidactionPerformed(ActionEvent ent){

        try{

          jlInfo.setText("正在读取");

          URL url=newURL(jtfUrl.getText()); //得到文件的URL地址

          InputStream in=url.openStream();//得到文件输入流

          String outFilename=JOptionPane.showInputDialog(GetFileDemo.this,"输入保存文件名 ");//输入保存的文件名

          FileOutputStream out=newFileOutputStream(outFilename);//得到文件输出流

          byte[] buffer=newbyte[1024];//缓冲区大小

          intlength;

          while((length=in.read(buffer))!=-1){//读取数据

            out.write(buffer,0,length);//写入数据到文件

          }

          out.close();//关闭文件输出流

          in.close();//关闭输入流      

          jlInfo.setText("读取文件成功");//显示提示信息

        }

        catch(Exception ex){

          ex.printStackTrace();//输出出错信息

          jlInfo.setText("读取文件失败");

        }

      }

    });

    setSize(320,100);//设置窗口尺寸

    setVisible(true);//设置窗口可视

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序

  }

  publicstaticvoidmain(String[] args){

    newGetFileDemo();

  }

}

 

热门栏目