java位移的方块与进度条,Java带进度条的输入流

Java可以使用带进度条的输入流来读取文件,如果读取文件时希望让用户能够看见文件的读取进度,可以使用javax.swing包提供的输入流类ProgressMonitorInputStream,它的构造方法是:

ProgressMonitorInputStream(Component c, String s, InputStream);

该类创建的输入流在读取文件时会弹出一个显示读取进度的进度条,进度条在参数c指定的组件正前方显示;若该参数取null,则在屏幕的正前方显示。用户可以随时单机进度条上的“取消”按钮关闭流的读取操作。

下面给出一个例子,先看效果图:

da72c6668611199a31c3d11e331d22c6.png

代码:

import java.awt.BorderLayout;

import java.io.FileInputStream;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.ProgressMonitor;

import javax.swing.ProgressMonitorInputStream;

/**

* Java带进度条的输入流

* @author SingleX

*

*/

public class Example12_13 {

public static void main(String[] args) {

byte b[] = new byte[30];

JTextArea text = new JTextArea(20, 20);

JFrame jFrame = new JFrame();

jFrame.setSize(900, 700);

jFrame.setVisible(true);

jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jFrame.add(new JScrollPane(text), BorderLayout.CENTER);

jFrame.validate();

try {

FileInputStream input = new FileInputStream("src\\Example12_13.java");

ProgressMonitorInputStream input_progress = new ProgressMonitorInputStream(null, "读取Java文件", input);

ProgressMonitor p = input_progress.getProgressMonitor();// 获取进度条

while (input_progress.read(b) != -1) {

String s= new String(b);

text.append(s);

Thread.sleep(200);//为了能看到进度条,有意延缓0.2s

}

} catch (Exception e) {

// TODO: handle exception

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值