- 98
- 0
- 约 8页
- 2018-06-04 发布于重庆
- 举报
一个简单的java窗体小程序(完整代码)
大神请绕道
首先,这只是一个很简单的程序,所以大神请绕道。
心血来潮,用java 编写了一个能访问http链接,并能下载文件的窗体小程序。实测能够正确下载17M的压缩包,图片,文档,html等。但是因为程序效率低下,于是没有继续测试更大的压缩文件(问题可能在于保存输入流到缓冲区的数组)。
程序已打包jar可执行文件,并将代码一齐打包到jar中。为方便使用jar,使用word文档对象包装了它,将下面的对象(显示为一个图标)拖到桌面或者其他文件夹,即可得到该程序:
也可以右击,激活内容,直接运行。
程序运行效果如图:
该测试链接来自pc6,下载结果为:
文件顺利打开。
程序主要使用了url访问http地址,并获取输入流,创建本地文件,输出读取的数据到本地文件中。其他部分则是窗体。
以下是全部代码:
同样是word对象,直接拖到桌面即可。
显示窗体的ui包:
分割字符串的util包:
监听事件的listener包:
其中,ui包:
MainWin.java
package 下载.ui;
public class MainWin {
public static void main(String[] args) {
DownloadWin win = new DownloadWin(下载);
}
}
DownloadWin.java
package 下载.ui;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import 下载.listener.DownloadListener;
public class DownloadWin extends JFrame{
/**
*
*/
private static final long serialVersionUID = -7226361346020458023L;
private JTextField httpLine;
private JTextField savePath;
private JButton btnDownload;
private JLabel lineLabel;
private JLabel saveLabel;
private static JLabel infoLabel;
public DownloadWin(String title) {
init();
setTitle(title);
setSize(400,300);
setLayout(new GridLayout(2, 1, 0, 0));//为美观考虑,第二行没有使用。
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private void init() {
Box baseBox = Box.createVerticalBox();
Box boxV1 = Box.createHorizontalBox();
Box boxV2 = Box.createHorizontalBox();
Box boxV3 = Box.createHorizontalBox();
Box boxV4 = Box.createHorizontalBox();
Box boxV5 = Box.createHorizontalBox();
lineLabel = new JLabel(访问地址:);
httpLine = new JTextField();
saveLabel = new JLabel(保存路径:);
savePath = new JTextField();
btnDownload = new JButton(下载);
infoLabel = new JLabel();
/**
* 监听器
*/
DownloadListener listener = new DownloadListener(httpLine,savePath,infoLabel);//将需要改变显示状态的控件传递过去处理
btnDownload.addActionListener(listener);
原创力文档

文档评论(0)