精华内容
下载资源
问答
  • 2021-04-22 09:24:51

    import java.awt.*;

    import java.awt.event.*;

    import javax.swing.*;

    public class Progress extends JFrame {

    JProgressBar current;

    JTextArea out;

    JButton find;

    Thread runner;

    int num = 0;

    public Progress() {

    super("Progress");

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel pane = new JPanel();

    pane.setLayout(new FlowLayout());

    current = new JProgressBar(0, 2000);

    current.setValue(0);

    current.setStringPainted(true);

    pane.add(current);

    setContentPane(pane);

    }

    public void iterate() {

    while (num < 2000) {

    current.setValue(num);

    try {

    Thread.sleep(1000);

    } catch (InterruptedException e) { }

    num += 95;

    }

    }

    public static void main(String[] arguments) {

    Progress frame = new Progress();

    frame.pack();

    frame.setVisible(true);

    frame.iterate();

    }

    }

    更多相关内容
  • Java Swing 进度条

    2019-07-27 02:26:55
    NULL 博文链接:https://xbgd.iteye.com/blog/726256
  • 主要介绍了Java Swing JProgressBar进度条的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 进度条出来了,但是不显示进度,以下是完整代码:Java code:package ui;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.event....

    进度条出来了,但是不显示进度,以下是完整代码:

    Java code:

    package ui;

    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 java.io.BufferedReader;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.IOException;

    import java.io.InputStreamReader;

    import javax.swing.JButton;

    import javax.swing.JFileChooser;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    import javax.swing.ProgressMonitorInputStream;

    import javax.swing.SwingConstants;

    public class DataImporter extends JFrame implements ActionListener {

    private static final long serialVersionUID = 1L;

    JPanel p = new JPanel();

    JButton btn = new JButton("选择文件");

    JLabel status = new JLabel("", SwingConstants.CENTER);

    public DataImporter() {

    super("数据导入器");

    setBounds(350, 250, 300, 150);

    setMinimumSize(new Dimension(300, 150));

    setAlwaysOnTop(true);

    Container c = getContentPane();

    btn.setToolTipText("请选择要导入的数据文件");

    btn.setPreferredSize(new Dimension(100, 30));

    btn.setFocusPainted(false);

    p.add(btn);

    status.setForegroun

    展开全文
  • 最近无聊想玩一玩gui,在自定义进度条时发现了一个小问题,进度条的背景颜色和前景颜色都可以使用JProgressBar本身自带的方法修改,但是前面的字体颜色却修改不了,造成修改背景颜色后字体的颜色会和背景颜色相互...

    最近无聊想玩一玩gui,在自定义进度条时发现了一个小问题,进度条的背景颜色和前景颜色都可以使用JProgressBar本身自带的方法修改,但是前面的字体颜色却修改不了,造成修改背景颜色后字体的颜色会和背景颜色相互对冲,整个外观非常的丑陋。一开始去百度了一堆发现好像没有一个真正的解决方法。

    后来去查看各种API,发现javax.swing.plaf.basic包中BasicProgressBarUI类和进度条的颜色有些关联,然后去看了下该类的源代码(位置在JRE System Library/rt.jar/javax.swing.plaf.basic/BasicProgressBarUI),里面果然发现了跟颜色有关的变量  注释的意思大概是一个字体颜色是初始颜色,另一个字体颜色是进度条覆盖字体时的颜色,具体看下我的截图就知道了。

    接着找下关于该变量的信息,在这个类里查找这两个变量,定位到如下部分:    再去UIManager类里面找到了一个put(Object key, Object value)方法,既然颜色从UIManager里面获取,那么颜色的修改应该也是在这里修改。尝试了一下,果然有效,下面是关键的两行代码:

    //未覆盖前的进度条颜色

    UIManager.put("ProgressBar.selectionBackground",Color.RED);

    //覆盖后的进度条颜色

    UIManager.put("ProgressBar.selectionForeground",Color.BLACK)

    效果图片:

    注意一点:这两行代码要在放在实例化JProgressBar之前,否则需要在这两行代码后面加上JProgressBar对象的repaint()方法来刷新该组件。

    相关代码:

    package com.hlx.JProgressBar;

    import java.awt.Color;

    import javax.swing.JProgressBar;

    public class MyJProgressBar extends JProgressBar{

    public MyJProgressBar(){

    this.setSize(300, 100);

    this.setValue(100);

    this.setForeground(new Color(252,221,219));

    this.setBounds(249, 237, 300, 100);

    this.setVisible(true);

    }

    }

    package com.hlx.JFrame;

    import javax.swing.JFrame;

    public class MyFrame extends JFrame {

    public MyFrame(){

    initFrame();

    }

    private void initFrame() {

    this.setVisible(false);

    this.setSize(800, 600);

    this.setTitle("MyFrame");

    this.setResizable(false);

    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    this.setLocationRelativeTo(null);

    }

    }

    package com.hlx.JProgressBar;

    import java.awt.Color;

    import javax.swing.UIManager;

    import com.hlx.JFrame.MyFrame;

    public class JProgressBarTest {

    public static void main(String[] args) {

    MyFrame frame = new MyFrame();

    //未覆盖前的进度条颜色

    UIManager.put("ProgressBar.selectionBackground",Color.RED);

    //覆盖后的进度条颜色

    UIManager.put("ProgressBar.selectionForeground",Color.BLACK);

    frame.getContentPane().setLayout(null);

    MyJProgressBar myproBar = new MyJProgressBar();

    frame.getContentPane().add(myproBar);

    frame.setVisible(true);

    frame.setVisible(true);

    myproBar.setStringPainted(true);

    new Thread(){

    public void run(){

    for(int i=0;i<=100;i++){

    try{

    Thread.sleep(100);

    }catch(InterruptedException e){

    e.printStackTrace();

    }

    myproBar.setValue(i);

    }

    myproBar.setString("升级完成!");

    }

    }.start();

    }

    }

    展开全文
  • package zikao.swing; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; public class JProgressBarTest2 { /* JProgressBar使用的步骤: 1,创建JProgressBar的对象 public ...
    package zikao.swing;
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    
    public class JProgressBarTest2 {
        /*
        JProgressBar使用的步骤:
    
        1,创建JProgressBar的对象
    
        public JProgressBar(int orient,int min,int max):
    
        orient: 方向  min: 最小值 max: 最大值
    
        2,设置属性
    
        setBorderPainted(boolean b): 设置进度条是否有边框
    
        setIndeterminate(boolean newValue): 设置该进度条是不是进度不确定的精度条
    
        setStringPainted(boolean b): 设置进度条是否显示当前完成百分比
    
        3,获取和设置当前进度条的进度状况
    
        setValue(int n): 设置当前进度值
    
        double getPercentComplete(): 获取进度条的完成百分比
    
        String getString(): 返回进度字符串的当前值
         */
        JFrame jFrame = new JFrame("JProgressBar测试");
        JProgressBar bar = new JProgressBar(JProgressBar.HORIZONTAL, 0, 100);
        JCheckBox indeterminate = new JCheckBox("不确定进度");
        JCheckBox noBorder = new JCheckBox("不绘制边框");
    
        public void init() {
            //处理复选框的点击行为
            indeterminate.addActionListener(e -> {
                //获取indeterminate有没有被选中
                boolean selected = indeterminate.isSelected();
                //设置当前进度条不确定进度
                bar.setIndeterminate(selected);
                bar.setStringPainted(!selected);
            });
            noBorder.addActionListener(e -> {
                boolean selected = noBorder.isSelected();
                bar.setBorderPainted(!selected);
            });
            Box vBox = Box.createVerticalBox();
            vBox.add(indeterminate);
            vBox.add(noBorder);
    
            //设置进度条的默认属性
    
            bar.setStringPainted(true);
            bar.setBorderPainted(true);
    
            //把当前窗口的布局方式改为FlowLayout
            jFrame.setLayout(new FlowLayout());
            jFrame.add(vBox);
            jFrame.add(bar);
    
            jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jFrame.pack();
            jFrame.setVisible(true);
    
            SimulatorActivity simulaterActivity = new SimulatorActivity(bar.getMaximum());
            new Thread(simulaterActivity).start();
    
            Timer timer = new Timer(100, new AbstractAction() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    int current = simulaterActivity.getCurrent();
                    bar.setValue(current);
                }
            });
            timer.start();
    
            //监听进度条的变化
            bar.addChangeListener(e -> {
                int value = bar.getValue();
                if (value == simulaterActivity.getAmount()) {
                    timer.stop();
                }
            });
        }
    
        private static class SimulatorActivity implements Runnable {
            //记录任务总量
            private final int amount;
            //记录当前完成量
            private volatile int current;
    
            public SimulatorActivity(int amount) {
                this.amount = amount;
            }
    
            public int getAmount() {
                return amount;
            }
    
            public int getCurrent() {
                return current;
            }
    
            @Override
            public void run() {
                while (current < amount) {
                    try {
                        Thread.currentThread().sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    current++;
                }
    
            }
        }
    
        public static void main(String[] args) {
            new JProgressBarTest2().init();
        }
    }
    

                                                                    效果与上次主线程休眠一致

    展开全文
  • import java.awt.*; public class JProgressBarTest { /* JProgressBar使用的步骤: 1,创建JProgressBar的对象 public JProgressBar(int orient,int min,int max): orient: 方向 min: 最小值 max: 最大值 ...
  • 本帖最后由 lp563161210 于 2015-8-26 18:44 编辑效果浏览自定义效果:QQ截图20150826182536.png (41.28 KB, 下载次数: 88)5年前 上传java默认效果:111.png (6.36 KB, 下载次数: 76)5年前 上传准备工作——什么是...
  • Java Swing JProgressBar:进度条组件

    千次阅读 2019-03-07 00:28:27
    进度条(JProgressBar)是一种以可视化形式显示某些任务进度的组件。JProgressBar 类实现了一个用于为长时间的操作提供可视化指示器的 GUI 进度条。在任务的完成进度中,进度条显示该任务完成的百分比。此百分比通常...
  • 采用Java语言编写,适合用在Java Swing程序里面。简单示例代码:CircleProgressBar progressBar = new CircleProgressBar(); //实例化progressBar.setMinimumProgress(0); //设置最小进度值progressBar....
  • java Swing 进度条 时间进度条

    千次阅读 2013-06-28 15:15:59
    项目中用到了java swing 的时间进度滚动条,所以写了一个 测试类,供大家参考,下面是 具体的实现类 package com.original.client.widget.execcenter; import java.awt.BorderLayout; import java.awt.Color; ...
  • Java Swing进度条的使用(简单版)

    千次阅读 2017-12-08 15:13:40
    [java] view ... * java swing 之进度条的使用   * @author gao   */  package com.gao;    import java.awt.FlowLayout;    import javax.swing.JFrame;  import javax.swing.
  • 进度条(JProgressBar)是一种以可视化形式显示某些任务...Java Swing也有进度条组件:JProgressBar ,那么JProgressBar 要怎么用呢?接下来小编就来介绍一下进度条的使用 一、构造方法 JProgressBar常用的构造方...
  • NULL 博文链接:https://yshjava.iteye.com/blog/1326539
  • **进度条(JProgressBar)**是一种以可视化形式显示某些任务进度的组件。 JProgressBar 类实现了一个用于为长时间的操作提供可视化指示器的 GUI 进度条。在任务的完成进度中,进度条显示该任务完成的百分比。此...
  • import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Rectangle;import java.awt.RenderingHints;import javax.swing.JComponent;import javax.swing.JFrame;import javax....
  • JavaSwing_2.11: JProgressBar(进度条

    万次阅读 多人点赞 2017-07-16 22:36:49
    JProgressBar,进度条。以可视化形式显示某些任务进度的组件。进度条中心可显示进度百分比的文本表示形式。当一个任务的进度长度未知时,可将进度条设置为不确定模式。不确定模式的进度条持续地显示动画来表示正进行...
  • SWING进度条

    2016-11-10 21:47:56
    SWING进度条
  • 之前写过一个的【Java URLConnection类 实现多线程下载文件】,只是那个demo比较简陋。。。 今天我们来加上图形界面,其实下载部分的代码都是复用过来的。。。。 JFrame 主窗体,windows窗口,可缩放等等 ...
  • public void showFolderCopyProgressBar() { JFrame jf=new JFrame("复制文件夹"); jf.setSize(400,300); jf.setLocation(200,200); jf.setLayout(new FlowLayout()); JLabel jl1=new JLabel("源文件地址:");...
  • NULL 博文链接:https://hw1287789687.iteye.com/blog/2003105
  • 本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力。首先看一下效果图吧,原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label用来分别显示进度和进度信息,而Dialog的...
  • 小编典典您的是经典的Swing并发问题。解决方案始终如一-在后台线程中运行长时间的代码,例如可以在SwingWorker中找到的代码。例如,import java.awt.FlowLayout;import java.beans.PropertyChangeEvent;import java....
  • 0x00问题概述在用swing做一个项目的时候,发现程序在运行一个长时间任务的时候界面会卡死,直到任务完成。具体描述就是按下一个按钮执行任务,接着按钮就一直是按下的状态,界面卡死,直到这个任务完成才恢复正常。...
  • 虽然自己不喜欢Java的GUI程序,但是工作原因,听从上级安排。 转入正题:这篇文章实现在桌面右下角显示一个进度条,显示当前程序运行的进度。而且鼠标能够拖动进度条。有需要的童鞋,可以直接拷贝代码过去使用! ...
  • package zikao.swing; import javax.swing.*; public class ProgressMonitorTest { /* ProgressMonitor的用法与ProgressBar相似 , ProgressMonitor可以直接创建一个进度对话框 提供的构造方法: public ...

空空如也

空空如也

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

javaswing进度条

java 订阅