Java使用组件编写窗口实现网上文件下载
作者:rain_web 发布时间:2023-09-14 06:08:36
标签: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();
}
}


猜你喜欢
- 基于unity3D实现渐变颜色的简单脚本,代码很少,就不废话了,直接上代码和效果图。效果图:using System;using Syste
- 一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架
- 前言在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成sw
- 本文为大家分享了 Android Retrofit 2.0框架上传图片解决方案,具体内容如下1.单张图片的上传/** * 上传一
- 最近看Android FrameWork层代码,看到了ThreadLocal这个类,有点儿陌生,就翻了各种相关博客一一拜读;自己随后又研究了
- Android之禁止ViewPager滑动实现实例当我们想在同一个Activity或者Fragment中展示多个页面时往往会用到ViewPa
- 一开始,学了 * 与过滤器,咋一看两者有点像,实际上两者有很大的不同。就用 * 和过滤器分别做了登录验证试验,这次先说 * 。下面是自己实践
- 下面是一个邮件接收的工具类,有点长!!!public class ReciveMail { private MimeMessage msg
- 本文实例讲述了C#导出数据到Excel文件的方法。分享给大家供大家参考。具体实现方法如下:/// <summary>/// 导出
- 导入后gradle building 一直到跑,卡住了,一般是gradle没有下载,又下不下来的原因。去 http://serv
- Swing 的组件与AWT 组件相似,但又为每一个组件增添了新的方法,并提供了更多的高级组件.Swing 的基本组件:1.按钮(JButto
- 一、函数和变量的多文件问题.h: 头文件,一般包含函数声明,变量声明,宏定义,头文件等内容(header).c : 源文件,一般包含函数实现
- 在进行C#程序设计时,用的最多的莫过于string了,但有些时候由于不仔细或者基础的不牢固等因素容易出错,今天本文就来较为详细的总结一下C#
- 一、C#方法中参数类型有4种参数类型,有时候很难记住它们的不同特征,下图对它们做一个总结,使之更容易比较和对照。二、C#方法中的参数1、值参
- 本文实例为大家分享了java实现双人五子棋游戏的具体代码,供大家参考,具体内容如下通过 上下左右 控制棋盘走动 空格落子 &nb
- 本文实例讲述了Spring实战之注入集合值操作。分享给大家供大家参考,具体如下:一 配置<?xml version="1.0
- 1.关系运算符!= 与等号共同组成关系运算符,检查两个操作数的值是否相等,如:A!=B2.逻辑运算符! 称为逻辑非运算符。用来逆转操作数的逻
- C#之委托委托:顾名思义,让别人帮你办件事。委托是C#实现回调函数的一种机制。可能有人会问了,回调函数是个啥???举个例子:我现在是一家公司
- 某次,在大型的工程代码中,我这样调用:#include <iostream>using namespace std;namesp
- 说在前面:老项目、大项目适配Android X 注意了,一定要谨慎、谨慎、再谨慎。项目中用到的第三方库多的话会很麻烦,有些第三方库还没有适配