java线程进度条(java 线程 状态)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享java线程进度条的知识,其中也会对java 线程 状态进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

java多线程导出如何更新进度条

1:一个子进程进行计算

2:计数仿握算过程中返回计算的百分比,比如10%,20%。。。。。100%;

3:前端需要一个定时器不断请大咐求进度,然后更新进薯庆度条。

JAVA中用进程条显示线程执行进度

多线程时,会牵扯到swing的单线程机制以及线程不安全。

派发线程以外的线程如何更新swing。

swing设计时是单线程的,同时又是线程不安全的,它并不和主程序在一个线程中,而是自己单独创建的一个线程中,因此在这个让森线程以外的任何线程都不是它的派发线程,如果此时要在主程序或是swing本身线程以外的线程来更新swing的值,就是不安全的,不允许这样做。

但是大多数情况下,我们更新进度条等等这类swing组件的值恰好都是在它的派发线程以外的线程中执行,那么该怎么办呢?芦滑渗?

呵呵,java提供了一个机制:

SwingUtilities.invokeLater;(建议好好看看这个,多线程编程用它的地方多着呢)

SwingUtilities.invokeLater的机制网上文章很多,在这就不说了。

解决了这个问题,接下来就容易了。

首先,创建进度条对象,设置相关属性,把它添加到容器中,这个就不用说了。

进度条最关键的问题是:如何获取更新值?

否则会出现,你的任务先执行,然后才执行进度条,两者没有同步。

举个例子:

你要读一个文件,那么获取这个文件长度,设置进度条的最大值为文件长度(把文件长度Long转化为Integer);

当执行文件读写操作时,每次读取一个buffersize(你设置的缓冲大小),让value += count;count记录每读写文件一次,读写的字陪脊节数目

value的最终值是文件长度。用progressbar.setvalue(value)来更新进度条的值,注意,前面已经说过,不能直接在派发线程以外的线程更新swing组件,因此这时进度条并没有更新,不会在界面中反映出来,还是停止不动。因该这样更新: SwingUtilities.invokeLater(progressUpdate);就可以了。

progressUpdate--------------

Runnable progressUpdate = new Runnable() {

public void run() {

pb.setValue(value);

count = (double)100*progress/fileLength;

taskOutput.append(String.format(

"Completed %f%% of task.\n", count));

}

JAVA怎么自己绘制进度条样式

package com.test;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Container;

import java.awt.Cursor;

import java.awt.Dimension;

import java.net.URL;

import javax.swing.ImageIcon;

import javax.swing.JLabel;

import javax.swing.JProgressBar;

import javax.swing.JWindow;

/**

* 程序启动模拟进皮昌度燃配扒条

* 配置操作:

* 1、更换url的test图片。图片的路径和.java文件一级

* 2、showFrame里,new出下一个JFrame

* 3、main方法里的new可以带到上一个JFrame

* @author Administrator

*

*/

public class ProgrammStart extends JWindow implements Runnable {

Thread splashThread; //进度条更新线程

JProgressBar progress; //进度条

public ProgrammStart() {

Container container=getContentPane(); //得到卖卜容器

setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); //设置光标

URL url = getClass().getResource("test.jpg"); //图片的位置

if(url != null){

container.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER); //增加图片

}

progress = new JProgressBar(1,100); //实例化进度条

progress.setStringPainted(true); //描绘文字

progress.setString("程序加载中,请稍候......"); //设置显示文字

progress.setBackground(Color.white); //设置背景色

container.add(progress,BorderLayout.SOUTH); //增加进度条到容器上

Dimension screen = getToolkit().getScreenSize(); //得到屏幕尺寸

pack(); //窗口适应组件尺寸

setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2); //设置窗口位置

}

public void start(){

this.toFront(); //窗口前端显示

splashThread=new Thread(this); //实例化线程

splashThread.start(); //开始运行线程

}

public void run(){

setVisible(true); //显示窗口

try {

for (int i=0;i100;i++){

Thread.sleep(100); //线程休眠

progress.setValue(progress.getValue()+1); //设置进度条值

}

}

catch (Exception ex) {

ex.printStackTrace();

}

dispose(); //释放窗口

showFrame(); //运行主程序

}

static void showFrame(){

//实例化JFrame对象

}

public static void main(String[] args) {

new ProgrammStart().start();

}

}

怎样在Java实例开发的过程中使用进度条

在读取大型文件或者其它大批量数据输入操作时 希望能够通过一个进度条显示当前的进度 现在在Java中非常容易实现 仅仅需要几行代码即可 Java的swing包提供了ProgressMonitorInputStream类 该类提供了自动地弹出进度窗口和事件处理机制 使用这个类也非常方便 只需要把任何一个InputStream作为参数 构造一个新的ProgressMonitorInputStream类 其它不需要任何额外的代码 即可实现进度窗口的自动生成 ProgressMonitorInputStream类可以和其它InputStream一样使用 ProgressMonitorInputStream类继承层次 [pre]java lang Object|+ java io InputStream|+ java io FilterInputStream|+ javax swing ProgressMonitorInputStream[/pre] 构造方法 携尺拦ProgressMonitorInputStream(Component parentComponent Object message InputStream in)parentComponent 触发被监视操作的组件message (如果弹出进度显示窗口) 显示在进度显示窗口中的指示信辩胡息in 需要监视的输入流 操作方法 除了在InputStream和FilterInputStream中继承的方法外 还增加了如下方法 ProgressMonitor getProgressMonitor()//得到当前对象使用的ProgressMonitor对象 int read()int read(byte[] b)int read(byte[] b int off int len)void reset()long skip(long n)//上面几个方法都是覆盖了FilterInputStream中的方法困码 因为需要更新进度指示 void close()//因为需要关闭进度监视对象和窗口 所以覆盖了FilterInputStream父类中的close方法 示例代码: import java awt FlowLayout;import java awt event ActionEvent;import java awt event ActionListener;import java io FileInputStream;import java io InputStream;import javax swing JButton;import javax swing JFrame;import javax swing ProgressMonitorInputStream;public class ProgressMonitorTest{public static void main(String[] args){// 创建一个包含 Click me 的窗口final JFrame f =new JFrame( ProgressMonitor Sample );f getContentPane() setLayout(new FlowLayout());JButton b = new JButton( Click me );f getContentPane() add(b);f pack();// 设置按钮的动作事件b addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){// 这儿使用了新的线程处理按钮的动作事件 因为我们需要//主窗口的线程响应用户 这样你可以多次点击该按钮 //会启动多个读取文件的线程 主窗口也保持响应 new Thread(){public void run(){try {// 打开文件输出流 把InputStream包装在ProgressMonitorInputStream中 //在当前目录中需要放置一个大文件 建议超过 MInputStream in = new FileInputStream( bigfile dat );ProgressMonitorInputStream pm =new ProgressMonitorInputStream(f Reading a big file in);// 读取文件 如果总耗时超过 秒 将会自动弹出一个进度监视窗口 //  显示已读取的百分比 int c;while((c=pm read()) != ){// 处理代码}pm close();}catch(Exception ex){ex printStackTrace();}}} start();}});// 设置缺省的窗口关闭行为 并显示窗口 f setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);f setVisible(true);}} lishixinzhi/Article/program/Java/hx/201311/25629

java 代码中设计的进度条不显示,求大神指导~~~

尝试设置JScrollPane js=new JScrollPane(ja); js在界面中的大小,试试。其实swing界面茄漏很简单,不显示要么没有添加,要么被遮盖了,要没有设置大小,要么没有设置凯扰布局位置。你细看看、找颤孙烂一个精度条的代码研究研究

java 点击按钮怎样让进度条开始

进度条单线程的,所以一般唤念需要启动一个线程来单独实现。比如如下代码:

Thread importThread = new Thread(new Runnable() {

@Override

public void run() {

try {

openImportPath();

} catch (TCException e) {

e.printStackTrace();

}

}

});

importThread.start();

Thread barThread = new Thread(new Runnable() {

@Override

public void run() {

while(bar101){

progressbar.setValue(bar);

}

}

});

barThread.start();

两个线程,一个实现 openImportPath()方法(这是我写的一个导入数据的方法),另一个就是实现进度条了,进度条就是为厅链绝了显示扮姿导入数据的进度。你可以参考。

关于java线程进度条和java 线程 状态的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-04-14 15:04:28
收藏
分享
海报
28
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了