- 浏览: 345866 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
tianshawang:
楼主你好偏心啊,把代码给谷歌不给这里
java 实现windows资源管理器 -
tianshawang:
其实我是也想要资源管理器的代码来的。。
java 实现windows资源管理器 -
hcmfys:
lonuery 写道open file 是获取要进行复制的文件 ...
JAVA 复制 带进度条 时间 百分比 -
qq657052171:
怎么没有代码呢?
java 实现windows资源管理器 -
IT女民工:
楼主,求资源管理器代码~~~~
java 实现windows资源管理器
写得不太好。如果喜欢就下载
/**
* @(#)JprogressBar.java
* it can copy file
* show speed remail time and copy precent
* @author hcmfys
* @version 1.00 2008/5/9
*把我们的智慧献给全人类
*/
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
public class JprogressBar extends JFrame implements Runnable {
public JprogressBar() {
initUI();
}
private void initUI() {
btCopy = new JButton("open file....");
JButton btCancel = new JButton("cancel");
JButton btSavePath = new JButton("save Path...");
copyFileProgressBar = new JProgressBar(0, 100);
copyFileProgressBar.setPreferredSize(new Dimension(450, 15));
copyFileProgressBar.setBackground(Color.GREEN);
copyFileProgressBar.setForeground(Color.PINK);
copyFileProgressBar.setStringPainted(true);
copyFileProgressBar.setVisible(false);
openFileDialog = new JFileChooser(".");
this.setLayout(new BorderLayout());
JPanel tmpPanel1 = new JPanel();
JPanel tmpPanel2 = new JPanel();
btCopy.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Thread t = new Thread(JprogressBar.this);
t.start();
}
});
btSavePath.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
savePath = setSavePath();
}
});
btCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
stop = true;
btCopy.setEnabled(true);
}
});
tmpPanel1.add(btCopy);
tmpPanel1.add(btSavePath);
tmpPanel1.add(btCancel);
tmpPanel2.add(copyFileProgressBar);
this.add(tmpPanel1, BorderLayout.NORTH);
this.add(tmpPanel2, BorderLayout.SOUTH);
this.setTitle("read and copy file");
this.setPreferredSize(new Dimension(450, 95));
this.pack();
Dimension cd = centerIt(this);
this.setLocation(cd.width, cd.height);
final Dimension des = this.getPreferredSize();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
stop = true;
System.exit(0);
}
public void windowStateChanged(WindowEvent e) {
System.out.println("ss");
if (e.paramString().equals("WINDOW_STATE_CHANGED")) {
System.out.println("ss");
JprogressBar.this.setSize(des);
}
}
});
this.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
// System.out.println("ss");
// JprogressBar.this.setSize(des);
}
});
}
/*
* start read file..
*/
public void run() {
stop = false;
int c = openFileDialog.showOpenDialog(this);
if (c == JFileChooser.APPROVE_OPTION) {
try {
File selectFile = openFileDialog.getSelectedFile();
if (selectFile.equals(savePath)) {
JOptionPane.showMessageDialog(this, " \t target file and source file can't as the same !");
return;
}
if (savePath == null) {
JOptionPane.showMessageDialog(this, " \t please select a path to save file !");
return;
}
btCopy.setEnabled(false);
copyFileProgressBar.setVisible(true);
long size = selectFile.length();
copyFileProgressBar.setMaximum((int) size);
FileInputStream fin = new FileInputStream(selectFile);
FileOutputStream fout = new FileOutputStream(savePath);
byte[] buff = new byte[1024];
int s;
int count = 0;
long startTime = System.currentTimeMillis();
while ((s = fin.read(buff)) > 0 && !stop) {
count += s;
fout.write(buff, 0, s);
String str = "" + 100 * (count / (size + 0.01));
str = forMatString(str);
long endTime = System.currentTimeMillis();
String speedStr = getSpeed(count, startTime, endTime);
String remailTime = getRemailTime(count, size, startTime, endTime);
copyFileProgressBar.setString(" precent: " + str + " %" + " speed: " + speedStr + " " + " remail time : " + remailTime);
copyFileProgressBar.setValue(count);
}
fin.close();
fout.close();
if (!stop) {
JOptionPane.showMessageDialog(this, " \t copy file complete !");
}
stop = true;
savePath = null;
btCopy.setEnabled(true);
copyFileProgressBar.setValue(0);
copyFileProgressBar.setString("");
copyFileProgressBar.setVisible(false);
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "err:\n" + ex.getMessage());
}
}
}
/*
*select save file path
*/
private File setSavePath() {
File path = null;
int c = openFileDialog.showSaveDialog(this);
if (c == JFileChooser.APPROVE_OPTION) {
path = openFileDialog.getSelectedFile();
}
return path;
}
/*
* make frame center
*/
private Dimension centerIt(Component c) {
Dimension size = c.getSize();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int sH = screenSize.height;
int sW = screenSize.width;
int cW = size.width;
int cH = size.height;
return new Dimension((sW - cW) / 2, (sH - cH) / 2);
}
/*
* show copy file speed
*/
private String getSpeed(long readByte, long startTime, long endTime) {
long speed;
if (endTime - startTime != 0) {
speed = (readByte / (endTime - startTime)) * 1000;
if (speed > 1024 * 1024) {
return forMatString(speed / (1024 * 1024 + 0.1) + "") + " m/s";
} else if (speed > 1024) {
return forMatString(speed / (1024 + 0.1) + "") + " k/s";
} else {
return speed + " b/s";
}
} else {
return "0 b/s";
}
}
/*
* format string
*/
private String forMatString(String str) {
String values;
int index = str.indexOf(".");
values = str.substring(0, index + 3);
return values;
}
/*
* get remail time
*/
private String getRemailTime(long readByte, long totalByte, long startTime, long endTime) {
long hour;
long minute;
long second;
String h;
String m;
String s;
try {
long speed = readByte / (endTime - startTime);
long time = ((totalByte - readByte) / speed) / 1000;
hour = time / 3600;
minute = time % 3600 / 60;
second = time % 3600 % 60;
h = hour + "";
m = minute + "";
s = second + "";
if (hour < 10) {
m = "0" + minute;
}
if (minute < 10) {
m = "0" + minute;
}
if (second < 10) {
s = "0" + second;
}
return h + ":" + m + ":" + s;
} catch (Exception ex) {
return "00:00:00";
}
}
/*
* show frm
*/
public static void main(String[] args) {
JprogressBar frm = new JprogressBar();
frm.setVisible(true);
}
/*
*
*/
private JButton btCopy;
private JFileChooser openFileDialog;
private JProgressBar copyFileProgressBar;
private File savePath = null;
private boolean stop = false;
}
评论
:o 没有那么严重把!
发表评论
-
Java服务器的JSON数据包三重加密算法(转载)
2015-06-03 19:30 1201mina的粘包拆包其实是蛮简单的,只是一开始没搞清楚原理。 J ... -
java ssl (转载)
2014-12-25 17:50 778某项目的业务系统要求 ... -
table
2014-05-27 00:13 755table ... -
java 删除目录
2013-08-01 21:45 829import java.io.File; pub ... -
负载均衡方法
2013-06-05 22:26 1045•随机:负载均衡方法 ... -
&#x 格式数据转换
2013-05-22 11:52 3059import java.io.UnsupportedEnc ... -
Java数据库连接
2012-11-22 10:42 800Java数据库连接(JDBC)由一组用 Java 编程语言编写 ... -
http post
2012-10-31 11:51 895package test.net; import ... -
Java proxy 代理访问网络(转)
2012-10-31 10:12 1450How to make your Java applicati ... -
java版mini编辑器
2012-10-11 15:40 836习惯用Editplus来查看源代码,但是没有代码导航功能,想看 ... -
java excel 导入
2011-12-16 18:04 2189import java.io.FileNotFoundExce ... -
excel 导入
2011-12-16 18:03 1035package *.*; import java.uti ... -
EVAL_BODY_INCLUDE
2011-08-09 10:19 1352EVAL_BODY_INCLUDE:把Body读入存在的输出流 ... -
jrebel的使用
2011-07-06 18:21 934-noverify -javaagent:E:\jrebe ... -
java 实现windows资源管理器
2011-06-27 00:00 2121最近在使用linux的界面,有时候觉得界面很难用,不如wind ... -
Linux下java环境变量设置的完整步骤
2010-10-29 13:32 946从java.sun.com上下载JDK的安装文件,一般是jdk ... -
设置头部,直接下载文件
2010-09-26 10:34 997string dir = SysSetting.Wave ... -
java 地图查看器
2010-07-25 23:07 1156/** * @(#)GisApp.java * ... -
中国移动 联通 电信 模拟网关服务器
2010-03-29 21:55 1940/Files/hcmfys/SngServer.rar -
basic64
2010-02-09 14:29 1722using System; using System. ...
相关推荐
Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条
一个带界面的java小程序,可实现对所选任何类型的文件进行拷贝,并对此复制过程有进度条显示。代码风格良好,适合初学者借鉴。
Java的命令行进度条 JCmdLineProgess
实现文件的复制 及 进度条的显示 progressdialog
java多线程进度条
Java的上传代码 带有进度条的上传 亲测无误 运行环境:tomcat7 JKD1 7
java带进度条的异步上传,采用servlet、ajax 可以用来学习交流使用
JAVA文件上传(带进度条),对于java文件上传的使用者绝对不可多得!
用java平台利用java的多线程特点,编写进度条的现实以及当前时间的实时更新。
java 文件上传带进度条,代码例子详细写在里面
java图片上传进度条,在做上传下载的时候,网页上....
一个用JAVA开发的页面进度条,能够让用户获取页面加载信息
C#自己自学的文件复制程序带进度条,好不容易码出来的,初学者真是难
html+servlet 带进度条的文件上传,用swfupload实现,用servlet接收文件,整个工程,完整例子,服务器端可以用其他语言。
Java的命令行进度条 JCmdLineProgess.7z
可自主限制上传文件的文件类型 showProgress "" "" "" 方法的第二个参数为限制上传文件类型 多文件时用 ‘|’ 进行分割 如: zip| rar| jif
主要介绍了Java上传文件进度条的实现方法,可简单实现显示文件上传比特数及进度的功能,并附带demo源码供读者下载参考,需要的朋友可以参考下
关于文件复制和进度条的代码,大家看着办吧,感谢下载,欢迎下载。
java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现
java实现大文件上传并有进度条及其代码解析