精华内容
下载资源
问答
  • Java 进度条百分比简单算法,根据数据量计算
    千次阅读
    2021-02-26 18:18:21

    1. 先把数据计算生成百分比

    public JsonResult add(@Validated(ValidateConfig.ADD.class)SecKillDevice secKillDevice, HttpServletRequest request)

    {

    //首先循环 获取当前选取的商家list

    for (int m = 0;m <= merchantList.size()-1; m++){

    //计算百分比 商家数 / ((商家总数-1)* 100%) = 进度条的百分比 减一是因为m从0开始计算

    Double aDouble = m/((merchantList.size()-1) * 0.01);

    int intValue=aDouble.intValue();

    Integer bfb=Integer.valueOf(intValue);

    //将进度值存储到session中

    request.getSession().setAttribute("processValue", bfb);

    }

    return new JsonResult().success("success");

    }

    2. 从session将执行进度值取出来并返回给用户

    1秒请求一次

    public Object getProcess(HttpServletRequest request) {

    //从session将执行进度值取出来并返回给用户

    Object obj = request.getSession().getAttribute("processValue");

    return obj;

    }

    3.前端页面,为了关闭添加页面以后继续可以保存进度条进度,所以在后面加了判断,前端为 layui框架

    //定义定时器

    var timer;

    //轮询请求进度数据

    getProcessvalue:function(){

    //1秒请求一次进度条的数据

    timer = setInterval(function () {

    $.post('/ad/secKillDevice/getProcess.json',function(data){

    $('.layui-progress').show(); //显示进度条

    //更新进度条

    element.progress('demo', data+'%');

    // 这个是列表页面的判断逻辑,因为为了加载页面的时候,继续保存进度条的进度

    // 如果进度条百分之百 或者 百分之0 不在调用后台轮询接口 关闭定时器, 隐藏进度条

    if (data == 0 || data == 100){
                  //清空定时器

    clearInterval(timer);

    $('.layui-progress').hide();

    return;

    }

    });

    }, 1000);

    },

    仅供参考!!

    更多相关内容
  • 主要介绍了java控制台输出百分比进度条示例,需要的朋友可以参考下
  • 默认情况下,此字符串为 null,隐含使用简单百分比字符串的内置行为62616964757a686964616fe78988e69d8331333264623135。如果已提供自定义进度字符串并要转换回内置状态,将字符串设置回 null 即可。仅当 ...

    展开全部

    public void setString(String s)

    设置进度字符串的值。默认情况下,此字符串为 null,隐含使用简单百分比字符串的内置行为62616964757a686964616fe78988e69d8331333264623135。如果已提供自定义进度字符串并要转换回内置状态,将字符串设置回 null 即可。

    仅当 isStringPainted 方法返回 true 时绘制进度字符串。

    参数:

    s - 进度字符串的值

    另请参见:

    getString(), setStringPainted(boolean), isStringPainted()

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    import java.beans.*;

    import java.util.Random;

    public class ProgressBarDemo extends JPanel

    implements ActionListener,

    PropertyChangeListener {

    private JProgressBar progressBar;

    private JButton startButton;

    private JTextArea taskOutput;

    private Task task;

    class Task extends SwingWorker {

    /*

    * Main task. Executed in background thread.

    */

    @Override

    public Void doInBackground() {

    Random random = new Random();

    int progress = 0;

    //Initialize progress property.

    setProgress(0);

    while (progress < 100) {

    //Sleep for up to one second.

    try {

    Thread.sleep(random.nextInt(1000));

    } catch (InterruptedException ignore) {}

    //Make random progress.

    progress += random.nextInt(10);

    setProgress(Math.min(progress, 100));

    }

    return null;

    }

    /*

    * Executed in event dispatching thread

    */

    @Override

    public void done() {

    Toolkit.getDefaultToolkit().beep();

    startButton.setEnabled(true);

    setCursor(null); //turn off the wait cursor

    taskOutput.append("Done!\n");

    }

    }

    public ProgressBarDemo() {

    super(new BorderLayout());

    //Create the demo's UI.

    startButton = new JButton("Start");

    startButton.setActionCommand("start");

    startButton.addActionListener(this);

    progressBar = new JProgressBar(0, 100);

    progressBar.setValue(0);

    progressBar.setStringPainted(true);

    taskOutput = new JTextArea(5, 20);

    taskOutput.setMargin(new Insets(5,5,5,5));

    taskOutput.setEditable(false);

    JPanel panel = new JPanel();

    panel.add(startButton);

    panel.add(progressBar);

    add(panel, BorderLayout.PAGE_START);

    add(new JScrollPane(taskOutput), BorderLayout.CENTER);

    setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

    }

    /**

    * Invoked when the user presses the start button.

    */

    public void actionPerformed(ActionEvent evt) {

    startButton.setEnabled(false);

    setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

    //Instances of javax.swing.SwingWorker are not reusuable, so

    //we create new instances as needed.

    task = new Task();

    task.addPropertyChangeListener(this);

    task.execute();

    }

    /**

    * Invoked when task's progress property changes.

    */

    public void propertyChange(PropertyChangeEvent evt) {

    if ("progress" == evt.getPropertyName()) {

    int progress = (Integer) evt.getNewValue();

    progressBar.setValue(progress);

    taskOutput.append(String.format(

    "Completed %d%% of task.\n", task.getProgress()));

    }

    }

    /**

    * Create the GUI and show it. As with all GUI code, this must run

    * on the event-dispatching thread.

    */

    private static void createAndShowGUI() {

    //Create and set up the window.

    JFrame frame = new JFrame("ProgressBarDemo");

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Create and set up the content pane.

    JComponent newContentPane = new ProgressBarDemo();

    newContentPane.setOpaque(true); //content panes must be opaque

    frame.setContentPane(newContentPane);

    //Display the window.

    frame.pack();

    frame.setVisible(true);

    }

    public static void main(String[] args) {

    //Schedule a job for the event-dispatching thread:

    //creating and showing this application's GUI.

    javax.swing.SwingUtilities.invokeLater(new Runnable() {

    public void run() {

    createAndShowGUI();

    }

    });

    }

    }

    2Q==

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • 使用介绍2.1 圆环百分比进度条2.2 直线百分比进度条2.3 仿杀毒类型百分比进度条3.注意要点4.效果展示5.其他介绍1.本库优势亮点圆环百分比进度条简便且小巧,支持设置多种属性。可以设置内圆和外圆的颜色,设置圆环的...

    目录介绍

    1.本库优势亮点

    2.使用介绍

    2.1 圆环百分比进度条

    2.2 直线百分比进度条

    2.3 仿杀毒类型百分比进度条

    3.注意要点

    4.效果展示

    5.其他介绍

    1.本库优势亮点

    圆环百分比进度条

    简便且小巧,支持设置多种属性。可以设置内圆和外圆的颜色,设置圆环的边缘宽度。

    支持设置倒计时总时间,可以调用start开始倒计时,也可以调用stop暂停倒计时,也可以自定义设置进度

    仿杀毒类型百分比进度条

    支持设置多种类型,比如设置百分比+单位类型,或者设置空类型【也就是不显示中间百分比】

    支持设置进度条的颜色,未更新的进度条颜色;设置百分比文字大小,颜色;支持设置单位等多种属性

    支持允许多线程访问,对于设置setProgress,添加synchronized关键字修饰。设置进度progress,如果小于0或者大于100,则抛异常。避免开发者使用造成其他问题。

    针对进度条,对于设置color颜色的方法,增加了注解@ColorInt,限制开发者调用color资源

    使用注解代替了枚举,针对设置枚举的方法,使用注解限制开发者调用时传入的类型。具体可见代码案例!

    注释十分详细,作为开源的lib库,我觉得要让使用者一目了然。方便调用同时,知道每个方法的作用。

    代码量少,如果想学习并深入自定义控件,可以从简单开始。这个项目就很符合!

    2.使用介绍

    集成库:compile 'cn.yc:YCProgressLib:1.2.6'

    2.1 圆环百分比进度条

    在布局中 //也可以设置布局中的attr属性

    android:id="@+id/pb_1"

    android:layout_width="100dp"

    android:layout_height="100dp"

    android:text="进度条" />

    使用方法 //设置类型

    pb_1.setProgressType(ProgressBarUtils.ProgressType.COUNT);

    //设置圆形的填充颜色

    pb_1.setInCircleColor(getResources().getColor(R.color.redTab));

    //设置外部轮廓的颜色

    pb_1.setOutLineColor(getResources().getColor(R.color.grayLine));

    //设置进度监听

    pb_1.setCountdownProgressListener(1, progressListener);

    //设置外部轮廓的颜色

    pb_1.setOutLineWidth(2);

    //设置进度条线的宽度

    pb_1.setProgressLineWidth(5);

    //设置进度

    pb_1.setProgress(60);

    //设置倒计时总时间

    pb_1.setTimeMillis(3000);

    //设置进度条颜色

    pb_1.setProgressColor(getResources().getColor(R.color.colorPrimary));

    //开始

    pb_1.start();

    //暂停

    pb_1.stop();

    //重新开始

    pb_1.reStart();

    2.2 直线百分比进度条

    在布局中

    android:id="@+id/bar1"

    android:layout_width="match_parent"

    android:layout_height="wrap_content" />

    android:id="@+id/bar2"

    android:layout_marginTop="10dp"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    app:progress_max="100"

    app:progress_reached_bar_height="3dp"

    app:progress_unreached_bar_height="3dp"

    app:progress_reached_color="@color/colorPrimary"

    app:progress_unreached_color="@color/gray3"

    app:progress_text_size="14sp"

    app:progress_text_color="@color/colorAccent"

    app:progress_text_visibility="visible"/>

    代码调用 bar1 = (NumberProgressbar) findViewById(R.id.bar1);

    //设置倒计时总时间

    bar1.setTimeMillis(10000);

    //设置最大进度条的值

    bar1.setMax(100);

    //设置进度条文本的颜色

    bar1.setProgressTextColor(this.getResources().getColor(R.color.colorAccent));

    //设置进度条文本的大小

    bar1.setProgressTextSize(ProgressBarUtils.sp2px(this,14));

    //设置百分比文字内容是否可见

    bar1.setNumberTextVisibility(ProgressBarUtils.NumberTextVisibility.Visible);

    //设置百分比进度条的高度

    bar1.setReachedBarHeight(10);

    //设置未更新百分比进度条的高度

    bar1.setUnreachedBarHeight(10);

    //设置百分比进度条的颜色

    bar1.setReachedBarColor(this.getResources().getColor(R.color.redTab));

    //设置未更新百分比进度条的颜色

    bar1.setUnreachedBarColor(this.getResources().getColor(R.color.blackText2));

    //设置百分比进度条的监听

    bar1.setOnProgressBarListener(new OnNumberProgressListener() {

    @Override

    public void onProgressChange(int current, int max) {

    }

    });

    //开始

    bar1.start();

    //暂停

    bar1.stop();

    2.3 仿杀毒类型百分比进度条

    布局代码

    android:id="@+id/bar_percent"

    android:layout_width="100dp"

    android:layout_height="100dp"/>

    如何调用 bar_percent = (RingProgressBar) findViewById(R.id.bar_percent);

    //设置进度

    bar_percent.setProgress(0);

    //设置更新进度条颜色

    bar_percent.setDotColor(this.getResources().getColor(R.color.colorAccent));

    //设置未更新部分的进度条颜色

    bar_percent.setDotBgColor(this.getResources().getColor(R.color.blackText));

    //设置百分比文字颜色

    bar_percent.setPercentTextColor(this.getResources().getColor(R.color.blackText1));

    //设置百分比文字大小

    bar_percent.setPercentTextSize(ProgressBarUtils.dp2px(this,16.0f));

    //设置展示的类型

    bar_percent.setShowMode(ProgressBarUtils.RingShowMode.SHOW_MODE_PERCENT);

    //设置单位的文字内容

    bar_percent.setUnitText("%");

    //设置单位的文字大小

    bar_percent.setUnitTextSize(ProgressBarUtils.dp2px(this,16.0f));

    //设置单位的文字颜色

    bar_percent.setUnitTextColor(this.getResources().getColor(R.color.blackText1));

    可以设置多种类型

    第一种:百分比+单位【支持自己设置单位,比如设置%,或者设置毫秒s等】

    第二种:空显示模式【也就是不显示中间的部分】

    3.注意要点

    3.1 不论是圆环进度条还是直线进度条,在调用setProgress设置进度时,增加了验证进度的功能。因为如果设置值超过100或者小于0,该方法就起作用呢! /**

    * 验证进度。

    *

    * @param progress 你要验证的进度值。

    * @return 返回真正的进度值。

    */

    private int validateProgress(int progress) {

    if (progress > 100){

    progress = 100;

    } else if (progress < 0){

    progress = 0;

    }

    return progress;

    }

    3.2 针对CircleProgressbar和NumberProgressbar自定义控件,如果调用start方法开始循环执行setProgress,程序意外销毁,则注意: /**

    * 当自定义控件销毁时,则调用该方法

    */

    @Override

    protected void onDetachedFromWindow() {

    super.onDetachedFromWindow();

    stop();

    }

    4.效果展示

    50d61022c6c9a0c8b67e7c5b823c7060.png

    c8f2127c6c39daef0b6bd2824ba5ffa7.png

    f1b2b085f9860b775ab41cc188861d66.png

    11de6d1af127c45603451d07b74e2631.png

    dd9a01344f89df24e3df400ac4995a56.png

    22ca6e9902ccd64255494fb31cec08b7.png

    5.其他介绍

    关于其他内容介绍

    版本更新说明

    v1.0.0 更新于2016/2/10 作用于投资界下载更新进度条,学习自定义控件

    v1.1.1 更新于2016/8/12 针对圆环进度条,添加自定义attr属性

    v1.1.2 更新于2017/3/10 针对圆环进度条添加设置倒计时总时间,start和stop方法

    v1.1.3 更新于2017/5/27 针对设置进度的方法,增加校验,不能小于0或者大于100

    v1.2.5 更新于2018年8月24日 添加了直线百分比进度条,针对部分方法添加注解

    v1.2.6 更新于2018年11月30日 添加了详细的注释

    v1.2.7 更新于2018/12/3 更新targetSdkVersion版本是27

    关于博客汇总链接

    其他推荐

    博客笔记大汇总【15年10月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计47篇[近20万字],转载请注明出处,谢谢!

    如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!

    关于LICENSE

    Licensed under the Apache License, Version 2.0 (the "License");

    you may not use this file except in compliance with the License.

    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software

    distributed under the License is distributed on an "AS IS" BASIS,

    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

    See the License for the specific language governing permissions and

    limitations under the License.

    展开全文
  • 我们在一些网站中经常能够看到进度条,这是提示我们当前加载到什么时候了,本篇文章我们就来看看用java如何写出这么一个时间进度条。示例:packagecom.original.client.widget.execcenter;importjava.awt....

    我们在一些网站中经常能够看到进度条,这是提示我们当前加载到什么时候了,本篇文章我们就来看看用java如何写出这么一个时间进度条。

    示例:package com.original.client.widget.execcenter;

    import java.awt.BorderLayout;

    import java.awt.Color;

    import java.awt.Container;

    import java.awt.Dimension;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import javax.swing.JButton;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    import javax.swing.JProgressBar;

    import javax.swing.Timer;

    import javax.swing.event.ChangeEvent;

    import javax.swing.event.ChangeListener;

    import net.miginfocom.swing.MigLayout;

    /**

    *

    * @author panghui 2013-6-28

    * 消息中心倒计时进度条

    */

    public class TestOExecProgressBar implements ActionListener, ChangeListener

    {

    JFrame frame = null;

    JProgressBar progressbar;

    JLabel label;

    Timer timer;

    JButton b;

    JButton s;

    public TestOExecProgressBar()

    {

    frame = new JFrame("安装");

    frame.setBounds(100, 100, 400, 130);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Container contentPanel = frame.getContentPane();

    label = new JLabel("", JLabel.CENTER);

    progressbar = new JProgressBar();

    progressbar.setOrientation(JProgressBar.HORIZONTAL);

    progressbar.setMinimum(0);

    progressbar.setMaximum(100);

    progressbar.setValue(0);

    //progressbar.setStringPainted(true);//设置进度条上边是否显示 百分比

    progressbar.addChangeListener(this); // 实现进度条值改变的动态监听

    progressbar.setBounds(0, 20, 100, 5);

    progressbar.setBorderPainted(false);

    progressbar.setForeground(new Color(55, 165, 228));

    progressbar.setBackground(new Color(218, 218, 218));

    JPanel panel = new JPanel(new MigLayout("wrap 2", "[grow,100%]", "[grow,50%] [grow,50%]"));

    panel.setBackground(new Color(255, 255, 255));

    panel.setPreferredSize(new Dimension(400, 50));

    b = new JButton("安装");

    b.setForeground(Color.blue);

    b.addActionListener(this);

    s = new JButton("停止");

    s.setForeground(Color.blue);

    s.addActionListener(this);

    panel.add(b);

    panel.add(s);

    panel.add(progressbar, "growx,h 7!,span 2");

    timer = new Timer(100, this);

    contentPanel.add(panel, BorderLayout.NORTH);

    contentPanel.add(label, BorderLayout.SOUTH);

    frame.setVisible(true);

    }

    public void actionPerformed(ActionEvent e)

    {

    if (e.getSource() == b)

    {

    timer.start();

    }

    if (e.getSource() == s)

    {

    timer.stop();

    }

    if (e.getSource() == timer)

    {

    int value = progressbar.getValue();

    if (value 

    {

    progressbar.setValue(++value);

    }

    else

    {

    timer.stop();

    //frame.dispose();

    }

    }

    }

    public void stateChanged(ChangeEvent e1)

    {

    int value = progressbar.getValue();

    if (e1.getSource() == progressbar)

    {

    label.setText("目前已完成进度:" + Integer.toString(value) + "%");

    label.setForeground(Color.blue);

    }

    }

    public static void main(String[] args)

    {

    TestOExecProgressBar app = new TestOExecProgressBar();

    }

    }

    以上就是本篇文章的所有内容,想了解更多java常见问题及解决方法的小伙伴就请关注我们网站吧。

    推荐阅读:

    展开全文
  • 这篇文章主要介绍了jQuery实现的简单百分比进度条效果,结合简单实例形式分析了jQuery针对页面元素的运算与动态操作相关操作技巧,需要的朋友可以参考下JSP页面1.添加table标签 正在进行保存,用时较长,请稍后... 这...
  • Java实现上传进度条

    2018-04-20 17:42:25
    Java实现上传进度条==========java基础的使用规则等整理内容
  • java进度条简介利用JprogressBar类可以实现一个进度条。它一般是一种颜色部分或完全填充的矩形。缺省情况下,进度条配备了一个凹陷的边框,并水平放置。进度条还可以选择显示一个字符串,这个字符串在进度条矩形的...
  • 主要介绍了Java Swing JProgressBar进度条的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 如果你想回删多个字符就打印多个 "\b"这个代码也可以参考一下:public static void main(String[] args) throws Except2021-01-27 20:52:16思路分析:因为既要有操作面板又要有进度条,所以肯定要出现两个继承JFrame...
  • 下面就让爱站技术频道小编带大家学习java读取文件显示进度条的实现方法吧!实现这个功能比较简单,用到的类有两个:ProgressMonitorInputStream(主要是整个类) 和 ProgressMonitor ,它们在javax.swing中大体思路,...
  • Java制作进度条

    2021-04-23 16:29:20
    【效果图】 【描述】进度条宽度保持和窗口宽度一致,进度最小值为0,最大值为100,每100毫秒进度值+1,进度条中间显示进度百分比【代码】package test;import java.awt.*;import java.awt.event.*;import javax....
  • java实现大文件上传并有进度条及其代码解析
  • android布局文件里的ProgressBar长形进度条怎么自 在windows操作系统下Android studio按照如下步骤自动义ProgressBar长形进度条的样式。首先创建一个android项目,打开其中的XML布局文件,如下图:添加ProgressBar...
  • java实现FTP上传有2种方式,一种是org.apache.commons.net.ftp.FTPClient这个jar包,一种是sun.net.ftp.FtpClient。不知道为什么,在使用前一种方式时,在遇到大批量的上传文件时总会抛出异常,我却找不出原因,所以...
  • 启动任务servlet开启任务,并跳转掉进度条展示页面3.页面就绪就调用(进度参数获取servlet),此后进度条展示页面定时调用,直到传递过来为100%.4.获取参数servlet从session中取出任务,并获取任务中的进度参数.返回进度...
  • import java.awt.*; public class JProgressBarTest { /* JProgressBar使用的步骤: 1,创建JProgressBar的对象 public JProgressBar(int orient,int min,int max): orient: 方向 min: 最小值 max: 最大值 ...
  • android多线程断点下载,带进度条百分比显示,断点下载的临时数据保存到SD卡的文本文档中,建议可以保存到本地数据库中,这样可以提高存取效率,从而提高系统性能。 效果: 打开软件: 下载中: 下载完毕: 附...
  • 关于java读取文件显示进度条的实现方法实现这个功能比较简单,用到的类有两个:ProgressMonitorInputStream(主要是整个类) 和 ProgressMonitor ,它们在javax.swing中大体思路,你要首先知道整个文件的大小,和当前...
  • 我想在按钮上单击下载 .EXE 文件并在网页上显示下载进度条而不是浏览器进度条 .... 它只是在浏览器控制台中看到时下载文件,但无法显示进度条百分比 .HTML Markup:JavaScript Logic:function downfile() {var myTr...
  • 本文实例讲述了Android编程开发实现带进度条百分比的多线程下载。分享给大家供大家参考,具体如下: 继上一篇《java多线程下载实例详解》之后,可以将它移植到我们的安卓中来,下面是具体实现源码: DownActivity....
  • import java.io.FileOutputStream; import java.io.InputStream; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache....
  • 本帖最后由 lp563161210 于 2015-8-26 18:44 编辑效果浏览自定义效果:QQ截图20150826182536.png (41.28 KB, 下载次数: 88)5年前 上传java默认效果:111.png (6.36 KB, 下载次数: 76)5年前 上传准备工作——什么是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,431
精华内容 2,172
关键字:

java进度条显示百分比

java 订阅