Java使用组件编写窗口实现网上文件下载
作者:rain_web 时间:2023-09-14 06:08:36
本文实例为大家分享了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