java文件进度条(java进度条为什么不动)

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

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

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

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

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

本文目录一览:

怎样在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中如何实现进度条效果

import java.awt.Color; import java.awt.Toolkit; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JProgressBar; import javax.swing.JWindow; @SuppressWarnings("serial") public class Demo extends JWindow implements Runnable { // 定义加载窗口大小 public static final int LOAD_WIDTH = 455; public static final int LOAD_HEIGHT = 295; // 获取屏幕窗口大小 public static final int WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width; public static final int HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height; // 定义进度条组件 public JProgressBar progressbar; // 定义标签组件 public JLabel label; // 构造函数 public Demo() { // 创建标签,并在标签上放置一张图片 label = new JLabel(new ImageIcon("images/background.jpg")); label.setBounds(0, 0, LOAD_WIDTH, LOAD_HEIGHT - 15); // 创建进度条 progressbar = new JProgressBar(); // 显示当前进度值信息 progressbar.setStringPainted(true); // 设置进度条边框不显示 progressbar.setBorderPainted(false); // 设置进度条的前景色 progressbar.setForeground(new Color(0, 210, 40)); // 设置进度条的背景色 progressbar.setBackground(new Color(188, 190, 194)); progressbar.setBounds(0, LOAD_HEIGHT - 15, LOAD_WIDTH, 15); // 添加组件 this.add(label); this.add(progressbar); // 设置布局为空 this.setLayout(null); // 设置窗口初始位置 this.setLocation((WIDTH - LOAD_WIDTH) / 2, (HEIGHT - LOAD_HEIGHT) / 2); // 设置窗口大小 this.setSize(LOAD_WIDTH, LOAD_HEIGHT); // 设置窗口显示 this.setVisible(true); } public static void main(String[] args) { Demo t = new Demo(); new Thread(t).start(); } @Override public void run() { for (int i = 0; i 100; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } progressbar.setValue(i); } JOptionPane.showMessageDialog(this, "加载完成"); this.dispose(); } }

用 java 怎么做进度条?

import java.awt.Canvas;

import java.awt.Color;

import java.awt.Graphics;

public class MyProgressBar extends Canvas {

private float scaleSize;

private float currentValue;

public MyProgressBar() {

this(100, 50);

}

public MyProgressBar(float scaleSize, float currentValue) {

this.scaleSize = scaleSize;

this.currentValue = currentValue;

this.setBackground(Color.lightGray);

this.setForeground(Color.magenta);

setSize(150, 25);

}

public float getCurrentValue() {

return currentValue;

}

public void setCurrentValue(float currentValue) {

this.currentValue = Math.max(0, currentValue);

if (this.scaleSize this.currentValue) {

this.currentValue = this.scaleSize;

}

}

public float getScaleSize() {

return scaleSize;

}

public void setScaleSize(float scaleSize) {

this.scaleSize = Math.max(1.0f, scaleSize);

if (this.scaleSize this.currentValue) {

this.scaleSize = this.currentValue;

}

}

public synchronized void paint(Graphics g) {

int w = getSize().width;

int h = getSize().height;

g.setColor(getBackground());

g.fillRect(1, 1, w - 2, h - 2);

g.fill3DRect(0, 0, w - 1, h - 1, true);

g.setColor(getForeground());

g.fillRect(3, 3, (int) (currentValue * (w - 6) / scaleSize), h - 6);

}

}

下面是程序执行入口点:

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

public class TestMyProgressBar extends JFrame implements Runnable,

ActionListener {

private MyProgressBar bar;

private JButton btnStart;

static TestMyProgressBar tmpb;

public TestMyProgressBar() {

setSize(400, 300);

setLocation(400, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setTitle("演示自定义进度条");

setLayout(new FlowLayout());

btnStart = new JButton("开始");

this.add(btnStart);

btnStart.addActionListener(this);

bar = new MyProgressBar();

setVisible(true);

}

public static void main(String[] args) {

tmpb = new TestMyProgressBar();

}

@Override

public void run() {

for (int i = 1; i = 20; i++) {

int x = i * 5;

bar.setCurrentValue(x);

if (x 0 x 100) {

btnStart.setEnabled(false);

}

if (x == 100) {

btnStart.setEnabled(true);

}

try {

Thread.sleep(200);

add(bar);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand().equals("开始")) {

Thread t = new Thread(tmpb);

t.start();

}

}

}

java多文件上传显示进度条

使用   apache fileupload   ,spring MVC   jquery1.6x , bootstrap  实现一个带进度条的多文件上传,由于fileupload 的局限,暂不能实现每个上传文件都显示进度条,只能实现一个总的进度条,效果如图:

1、jsp 页面

!DOCTYPE html  

%@ page contentType="text/html;charset=UTF-8"%    

%@ taglib prefix="c" uri="" %    

html xmlns=""  

head  

meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /  

script src="../js/jquery-1.6.4.js" type="text/javascript"/script  

link rel="stylesheet" type="text/css" href="../css/bootstrap.css"/  

/head  

body  

        form id='fForm' class="form-actions form-horizontal" action="../upload.html"   

              encType="multipart/form-data" target="uploadf" method="post"  

                 div class="control-group"  

                    label class="control-label"上传文件:/label  

                    div class="controls"  

                        input type="file"  name="file" style="width:550"  

                              

                    /div  

                    div class="controls"  

                        input type="file"  name="file" style="width:550"  

                    /div  

                    div class="controls"  

                        input type="file"  name="file" style="width:550"  

                    /div  

                    label class="control-label"上传进度:/label  

                    div class="controls"  

                        div  class="progress progress-success progress-striped" style="width:50%"  

                            div  id = 'proBar' class="bar" style="width: 0%"/div  

                        /div  

                    /div  

                /div  

                  

                 div class="control-group"  

                    div class="controls"  

                    button type="button" id="subbut" class="btn"submit/button  

                    /div  

                /div  

        /form  

        iframe name="uploadf" style="display:none"/iframe  

/body  

/html  

script   

$(document).ready(function(){  

    $('#subbut').bind('click',  

            function(){  

                $('#fForm').submit();  

                var eventFun = function(){  

                    $.ajax({  

                        type: 'GET',  

                        url: '../process.json',  

                        data: {},  

                        dataType: 'json',  

                        success : function(data){  

                                $('#proBar').css('width',data.rate+''+'%');  

                                $('#proBar').empty();  

                                $('#proBar').append(data.show);   

                                if(data.rate == 100){  

                                    window.clearInterval(intId);  

                                }     

                }});};  

                var intId = window.setInterval(eventFun,500);  

    });  

});  

/script

2、java 代码

package com.controller;  

  

import java.util.List;  

  

import javax.servlet.http.HttpServletRequest;  

import javax.servlet.http.HttpServletResponse;  

import javax.servlet.http.HttpSession;  

  

import org.apache.commons.fileupload.FileItemFactory;  

import org.apache.commons.fileupload.ProgressListener;  

import org.apache.commons.fileupload.disk.DiskFileItemFactory;  

import org.apache.commons.fileupload.servlet.ServletFileUpload;  

import org.apache.log4j.Logger;  

import org.springframework.stereotype.Controller;  

import org.springframework.web.bind.annotation.RequestMapping;  

import org.springframework.web.bind.annotation.RequestMethod;  

import org.springframework.web.bind.annotation.ResponseBody;  

import org.springframework.web.servlet.ModelAndView;  

  

@Controller  

public class FileUploadController {  

    Logger log = Logger.getLogger(FileUploadController.class);  

      

    /** 

     * upload  上传文件 

     * @param request 

     * @param response 

     * @return 

     * @throws Exception 

     */  

    @RequestMapping(value = "/upload.html", method = RequestMethod.POST)  

    public ModelAndView upload(HttpServletRequest request,  

            HttpServletResponse response) throws Exception {  

        final HttpSession hs = request.getSession();  

        ModelAndView mv = new ModelAndView();  

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);  

        if(!isMultipart){  

            return mv;  

        }  

        // Create a factory for disk-based file items  

        FileItemFactory factory = new DiskFileItemFactory();  

  

        // Create a new file upload handler  

        ServletFileUpload upload = new ServletFileUpload(factory);  

        upload.setProgressListener(new ProgressListener(){  

               public void update(long pBytesRead, long pContentLength, int pItems) {  

                   ProcessInfo pri = new ProcessInfo();  

                   pri.itemNum = pItems;  

                   pri.readSize = pBytesRead;  

                   pri.totalSize = pContentLength;  

                   pri.show = pBytesRead+"/"+pContentLength+" byte";  

                   pri.rate = Math.round(new Float(pBytesRead) / new Float(pContentLength)*100);  

                   hs.setAttribute("proInfo", pri);  

               }  

            });  

        List items = upload.parseRequest(request);  

        // Parse the request  

        // Process the uploaded items  

//      Iterator iter = items.iterator();  

//      while (iter.hasNext()) {  

//          FileItem item = (FileItem) iter.next();  

//          if (item.isFormField()) {  

//              String name = item.getFieldName();  

//              String value = item.getString();  

//              System.out.println("this is common feild!"+name+"="+value);  

//          } else {  

//              System.out.println("this is file feild!");  

//               String fieldName = item.getFieldName();  

//                  String fileName = item.getName();  

//                  String contentType = item.getContentType();  

//                  boolean isInMemory = item.isInMemory();  

//                  long sizeInBytes = item.getSize();  

//                  File uploadedFile = new File("c://"+fileName);  

//                  item.write(uploadedFile);  

//          }  

//      }  

        return mv;  

    }  

      

      

    /** 

     * process 获取进度 

     * @param request 

     * @param response 

     * @return 

     * @throws Exception 

     */  

    @RequestMapping(value = "/process.json", method = RequestMethod.GET)  

    @ResponseBody  

    public Object process(HttpServletRequest request,  

            HttpServletResponse response) throws Exception {  

        return ( ProcessInfo)request.getSession().getAttribute("proInfo");  

    }  

      

    class ProcessInfo{  

        public long totalSize = 1;  

        public long readSize = 0;  

        public String show = "";  

        public int itemNum = 0;  

        public int rate = 0;  

    }  

      

}

java文件进度条的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java进度条为什么不动、java文件进度条的信息别忘了在本站进行查找喔。

发布于 2023-04-02 22:04:37
收藏
分享
海报
37
目录

    忘记密码?

    图形验证码

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