`
jiqimiao
  • 浏览: 65289 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

进度条JProgressBar结合线程实现copy文件进度实例

 
阅读更多

进度条JProgressBar结合线程实现copy文件进度

packagetest.dxc;

importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedInputStream;
importjava.io.BufferedOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;

importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JProgressBar;
importjavax.swing.JTextField;
importjavax.swing.border.TitledBorder;

/***//**
*
@author左杰
*
*/

publicclassCopyFileextendsJFrameimplementsActionListener...{

privatestaticfinallongserialVersionUID=3222640218122985119L;
privateJProgressBarjpb=newJProgressBar();
privateJButtonjbtCopy=newJButton("copy");
privateJTextFieldjtfFrom=newJTextField();
privateJTextFieldjtfTo=newJTextField();

publicCopyFile()...{
JPaneljPanel2
=newJPanel();
jPanel2.setLayout(
newBorderLayout());
jPanel2.setBorder(
newTitledBorder("From"));
jPanel2.add(jtfFrom,BorderLayout.CENTER);

JPaneljPanel3
=newJPanel();
jPanel3.setLayout(
newBorderLayout());
jPanel3.setBorder(
newTitledBorder("To"));
jPanel3.add(jtfTo,BorderLayout.CENTER);

JPaneljPanel1
=newJPanel();
jPanel1.setLayout(
newGridLayout(2,1));
jPanel1.add(jPanel2);
jPanel1.add(jPanel3);

JPaneljPanel4
=newJPanel();
jPanel4.add(jbtCopy);

this.getContentPane().add(jpb,BorderLayout.NORTH);
this.getContentPane().add(jPanel1,BorderLayout.CENTER);
this.getContentPane().add(jPanel4,BorderLayout.SOUTH);
jpb.setStringPainted(
true);
jbtCopy.addActionListener(
this);
}

publicvoidactionPerformed(ActionEvente)...{
newCopyFileThread().start();
}

publicstaticvoidmain(String[]args)...{
CopyFileframe
=newCopyFile();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle(
"copyfile");
frame.setSize(
400,180);
frame.setVisible(
true);
}

classCopyFileThreadextendsThread...{
privateintcurrentValue;
publicvoidrun()...{
BufferedInputStreamin
=null;
BufferedOutputStreamout
=null;
try...{
FileinFile
=newFile(jtfFrom.getText().trim());
in
=newBufferedInputStream(newFileInputStream(inFile));

FileoutFile
=newFile(jtfTo.getText().trim());
out
=newBufferedOutputStream(newFileOutputStream(outFile));

longtotalByes=in.available();

jpb.setValue(
0);
jpb.setMaximum(
100);

intr;
longbytesRead=0;
byte[]b=newbyte[10];
while((r=in.read(b,0,b.length))!=-1)...{
out.write(b,
0,r);
bytesRead
+=r;
currentValue
=(int)(bytesRead*100/totalByes);
jpb.setValue(currentValue);
}

}
catch(Exceptione)...{
e.printStackTrace();
}
finally...{
try...{
if(in!=null)...{
in.close();
}

if(out!=null)...{
out.close();
}

}
catch(Exceptione)...{
e.printStackTrace();
}

}

}

}

}

分享到:
评论

相关推荐

    FTPUpload上传文件 进度条显示进度

    为了实现文件上传,我们需要创建一个`FTPClient`实例,连接到FTP服务器,然后调用`storeFile()`方法上传文件。 接下来,我们要关注进度条的实现。在Java Swing中,`JProgressBar`是用于展示进度的组件。我们可以...

    Java实现显示进度条

    ### Java 实现显示进度条 #### 背景与需求 在软件开发过程中,特别是涉及到长时间运行的任务时,向用户展示任务完成进度是一项非常实用的功能。进度条是实现这一功能的一种常见方式。本文将详细介绍如何使用Java...

    java实现进度条.pdf

    * 文件下载进度条:在文件下载过程中,使用JProgressBar可以实时显示当前下载进度,提高用户体验。 * 软件安装进度条:在软件安装过程中,使用JProgressBar可以实时显示当前安装进度,提高用户体验。 * 数据处理...

    复制文件并带有进度条

    在Java中,可以使用`java.nio`包的`Channels`和`Files`类来实现异步文件复制,并结合`Swing`的`JProgressBar`更新进度。 总的来说,实现"复制文件并带有进度条"的关键在于正确处理文件I/O,合理计算和更新进度,...

    java实现监视任务的进度条

    Java 提供了多种方式来实现进度条,包括 `JProgressBar` 和 `ProgressMonitor`。本文将详细介绍如何使用 `ProgressMonitor` 来创建一个简单的进度监视器。 #### 技术栈与工具 - **语言**:Java - **GUI 库**:...

    Java Swing JProgressBar进度条的实现示例

    Java Swing JProgressBar进度条的实现示例 Java Swing 中的 JProgressBar 是一个非常有用的组件,用于显示某些任务的进度。下面将详细介绍 JProgressBar 的实现示例、常用构造方法、常用方法和代码实例。 概述 ---...

    java 进度条的实现

    在Java编程中,进度条是一种常见的用户界面元素,它用于可视化地表示某个任务或操作的进度,例如文件上传、下载或处理。实现Java进度条主要涉及GUI(图形用户界面)和多线程技术。以下是对Java进度条实现的详细解释...

    基于 jQuery的JProgressBar Demo文件加载进度条演示效果1.0.zip

    如果这是一个JavaScript文件,那么它很可能包含了实现进度条功能的核心逻辑,如定义JProgressBar的初始化方法、更新进度的方法以及与Ajax交互的代码。如果是ZIP文件的一部分,解压后应该能看到更详细的HTML、CSS和...

    Java JProgressBar进度条的使用

    这个是关于java中Frame中JProgressBar进度条的使用,一个弹窗小案例,希望大家喜欢

    swing 下载文件时的进度条

    在Java Swing中实现下载文件时的进度条功能,可以为用户提供更好的交互体验,让他们了解文件下载的状态。这个功能通常涉及到线程处理、网络I/O以及Swing组件的更新。以下是一些关键知识点: 1. **Swing组件**: - ...

    java基于socket的文件发送与接收,有界面,有进度条

    这些库提供了丰富的组件,如`JFrame`作为主窗口,`JButton`用于触发操作,`JProgressBar`展示进度,以及可能的`JFileChooser`让用户选择要发送或接收的文件。当用户点击“发送”按钮时,文件选择的结果会被传递给...

    JAVA 带进度条的文件拷贝程序

    综上所述,这个“JAVA 带进度条的文件拷贝程序”涉及到Java GUI编程的核心概念,包括Swing组件的使用、文件操作、多线程、事件监听以及异常处理。对于初学者而言,这是一个很好的实践项目,可以帮助他们更好地理解和...

    swing不确定进度条

    在GUI应用程序中,当执行耗时操作如文件读写、网络通信或大数据处理时,为了提高用户体验,通常会使用进度条(JProgressBar)来显示任务的进度。在某些情况下,我们无法预估任务的具体完成时间,这时我们可以使用...

    java实现进度条

    总之,Java中的进度条是通过`JProgressBar`类实现的,可以通过监听任务进度并调用`setValue()`方法来更新其显示。通过结合使用`Thread.sleep()`和事件处理,可以实现动态的进度更新效果。在实际项目中,可以根据需求...

    Java实现文件上传进度条示例

    在Java编程中,实现文件上传进度条功能是一项常见的需求,特别是在开发用户界面或者Web应用时。这个过程涉及到了多线程、I/O流处理、事件监听等技术。下面将详细阐述如何在Java中实现文件上传进度条。 首先,我们...

    Java 进度条的使用 有暂停 和 继续

    在Java编程中,进度条(`JProgressBar`)是Swing组件中一个非常实用的工具,它可以用来显示任务的完成情况,为用户提供直观的任务进度反馈。本文将详细介绍如何在Java程序中实现一个带有暂停和继续功能的进度条。 #...

    ProgressBar:带线程的JProgressbar

    你可以通过`javax.swing.JProgressBar`类的构造函数来实例化一个进度条,例如: ```java JProgressBar progressBar = new JProgressBar(); ``` 默认情况下,进度条的范围是从0到100,你可以通过`setMinimum()`和`...

    java进度条设计源代码

    首先,我们要理解Java中的进度条通常是通过JProgressBar组件来实现的,它是Java Swing库的一部分。JProgressBar提供了两种模式:连续(Continuous)和定步(Indeterminate)。连续模式显示任务的百分比完成情况,而...

    JAVA进度条源代码

    总的来说,Java中的进度条功能通过JProgressBar类实现,结合大文件读取操作可以提供良好的用户体验。注意正确处理文件路径、读取操作和UI更新,以确保程序的稳定性和交互性。在开发过程中,记得进行充分的测试,确保...

Global site tag (gtag.js) - Google Analytics