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

作者:rain_web 时间:2023-09-14 06:08:36 

本文实例为大家分享了Java使用组件编写窗口下载网上文件的具体代码,供大家参考,具体内容如下

如图

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

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

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

实现代码:


package com.rain.get;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
//从网络取得文件
public class GetFileDemo extends JFrame{
 JTextField jtfUrl; //输入文件地址url
 JButton jbGetFile; //取文件按钮
 JLabel jlInfo; //显示提示信息
 public GetFileDemo(){
   super("从网络取得文件"); //调用父类构造函数
   Container container=getContentPane();  //得到容器
   jtfUrl=new JTextField(18); //实例化地址输入框
   jbGetFile=new JButton("取文件"); //实例化按钮
   jlInfo=new JLabel();
   JPanel p=new JPanel(); //实例化一个面板,用于容纳地址输入框和取文件按钮
   p.add(jtfUrl); //增加组件到面板上
   p.add(jbGetFile);
   container.add(p,BorderLayout.NORTH); //增加组件到容器上
   container.add(jlInfo,BorderLayout.CENTER);
   jbGetFile.addActionListener(new ActionListener(){ //按钮事件处理
     public void actionPerformed(ActionEvent ent){
       try{
         jlInfo.setText("正在读取");
         URL url=new URL(jtfUrl.getText());  //得到文件的URL地址
         InputStream in=url.openStream(); //得到文件输入流
         String outFilename=JOptionPane.showInputDialog(GetFileDemo.this,"输入保存文件名 "); //输入保存的文件名
         FileOutputStream out=new FileOutputStream(outFilename); //得到文件输出流
         byte[] buffer=new byte[1024]; //缓冲区大小
         int length;
         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); //关闭窗口时退出程序
 }
 public static void main(String[] args){
   new GetFileDemo();
 }
}
标签:Java,组件,窗口,文件下载
0
投稿

猜你喜欢

  • javaweb页面附件、图片下载及打开(实现方法)

    2023-11-25 05:33:44
  • C#实现餐厅管理系统

    2023-11-27 16:05:05
  • Flutter瀑布流仿写原生的复用机制详解

    2023-06-20 17:02:08
  • kotlin使用Dagger2的过程全纪录

    2021-08-18 05:45:54
  • Android实现快递单号查询快递状态信息

    2023-04-03 14:51:14
  • RecyclerView 源码浅析测量 布局 绘制 预布局

    2021-10-24 16:07:25
  • SpringCloud Eureka服务注册中心应用入门详解

    2022-02-23 08:48:44
  • 深入理解Java垃圾回收机制以及内存泄漏

    2023-09-24 22:45:13
  • flyway实现java 自动升级SQL脚本的问题及解决方法

    2021-10-14 00:23:19
  • 详解Spring与Mybatis整合方法(基于IDEA中的Maven整合)

    2023-11-06 21:35:12
  • SpringBoot+SpringSession+Redis实现session共享及唯一登录示例

    2023-10-07 07:56:17
  • Java使用条件语句和循环结构确定控制流(实例)

    2022-07-04 04:52:35
  • 论C++的lambda是函数还是对象

    2022-09-24 05:16:06
  • 改进c# 代码的五个技巧(二)

    2023-01-09 08:57:56
  • Java struts2 validate用户登录校验功能实现

    2022-03-04 02:30:57
  • android自定义进度条渐变圆形

    2022-07-15 02:04:14
  • 详谈springboot过滤器和拦截器的实现及区别

    2022-07-22 04:44:24
  • Java生成word文档的示例详解

    2022-02-11 19:37:47
  • C++中String类型的逆序方式

    2023-11-19 05:46:52
  • Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制(推荐)

    2023-01-19 23:52:35
  • asp之家 软件编程 m.aspxhome.com