首页 > 软件开发 > JAVA >

Swing 进度条组件怎么用

来源:互联网 2023-03-16 19:27:08 116

进度条(JProgressBar)是一种以可视化形式显示某些任务进度的组件,比如我们常见的视频播放进度,音乐播放进度,下载进度等都用到了进度条。在任务的完成进度中,进度条显示该任务完成的百分比,看起来很直观。JavaSwing也有进度条组件:JProgressBar ,那么JProgressBar要怎么用呢?接下来小编就来介绍一下进度条的使用8GR办公区 - 实用经验教程分享!

Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

工具/原料

  • eclipse2019

一、构造方法

  • 1

    JProgressBar常用的构造方法有两种:8GR办公区 - 实用经验教程分享!

    8GR办公区 - 实用经验教程分享!

    8GR办公区 - 实用经验教程分享!

    构造方法1:8GR办公区 - 实用经验教程分享!

    创建一个水平进度条,它显示边框,但没有进度字符串。初始值和最小值为0,最大值为100。8GR办公区 - 实用经验教程分享!

    JProgressBar pgbar=new JProgressBar();8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

  • 2

    构造方法2:8GR办公区 - 实用经验教程分享!

    创建具有指定方向的进度条,该方向可以是SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。默认情况下,会绘制边框,但不会绘制进度字符串。初始值和最小值为0,最大值为100。8GR办公区 - 实用经验教程分享!

    JProgressBar pgbar=new JProgressBar(int orient);8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

  • 3

    构造方法3:8GR办公区 - 实用经验教程分享!

    创建一个指定最小值和最大值的水平进度条,初始值是指定的最小值。默认情况下,会绘制边框,但不会绘制进度字符串。8GR办公区 - 实用经验教程分享!

    JProgressBar pgbar=new JProgressBar(intmin,int max);8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

  • 3相关内容未经授权抓取自百度经验
  • 4

    构造方法4:8GR办公区 - 实用经验教程分享!

    创建一个指定进度条方向、最小值和最大值的进度条,初始值是指定的最小值。默认情况下,会绘制边框,但不会绘制进度字符串。8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

  • 二、常用方法

  • 1

    getMaximum():返回进度条的最大值8GR办公区 - 实用经验教程分享!

    getMinimum():返回进度条的最小值8GR办公区 - 实用经验教程分享!

    getPercentComplete():返回进度条的完成百分比8GR办公区 - 实用经验教程分享!

    getString():返回当前进度的 String 表示形式8GR办公区 - 实用经验教程分享!

    getValue():返回进度条的当前 value8GR办公区 - 实用经验教程分享!

    setBorderPainted(boolean b):设置 borderPainted 属性,如果进度条应该绘制其边框,则此属性为 true8GR办公区 - 实用经验教程分享!

    setIndeterminate(boolea newValue):设置进度条的 indeterminate 属性,该属性确定进度条处于确定模式中是处于不确定模式中8GR办公区 - 实用经验教程分享!

    setMaximum(int n):将进度条的最大值设置为 n8GR办公区 - 实用经验教程分享!

    setMinimum(int n):将进度条的最小值设置为 n8GR办公区 - 实用经验教程分享!

    setOrientation(int newOrientation):将进度条的方向设置为 newOrientation8GR办公区 - 实用经验教程分享!

    setString(String s):设置进度字符串的值8GR办公区 - 实用经验教程分享!

    setStringPainted(boolean b):设置 stringPainted 属性的值,该属性确定进度条是否应该呈现进度字符串8GR办公区 - 实用经验教程分享!

    setValue(int n):将进度条的当前值设置为 n8GR办公区 - 实用经验教程分享!

    updateUI():将 UI 属性重置为当前外观对应的值8GR办公区 - 实用经验教程分享!

  • 三、实例

  • 1

    定义一个进度条的进度数组 progressValues。线程每隔 200毫秒从数组中取一个数字作为当前进度,并使用 JProgressBar 类的 setValue() 方法更新到进度条。最后使进度条显示“升级完成!”字符串,并使“完成”按钮可用。8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

    Swing 进度条组件怎么用8GR办公区 - 实用经验教程分享!

  • 2

    Demo23_JProgressBar类代码如下:8GR办公区 - 实用经验教程分享!

    8GR办公区 - 实用经验教程分享!

    8GR办公区 - 实用经验教程分享!

    public class Demo23_JProgressBar extends JFrame{8GR办公区 - 实用经验教程分享!

    public static void main(String[] args) {8GR办公区 - 实用经验教程分享!

    new Demo23_JProgressBar();8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    public Demo23_JProgressBar() {8GR办公区 - 实用经验教程分享!

    setTitle("使用进度条");8GR办公区 - 实用经验教程分享!

    SwingUtils.setCenter(this);//设置窗体大小600*800并居中8GR办公区 - 实用经验教程分享!

    JLabel label=new JLabel("欢迎使用在线升级功能!");8GR办公区 - 实用经验教程分享!

    label.setFont(new Font("宋体", 1, 25));8GR办公区 - 实用经验教程分享!

    //创建一个进度条8GR办公区 - 实用经验教程分享!

    JProgressBar progressBar=new JProgressBar();8GR办公区 - 实用经验教程分享!

    progressBar.setPreferredSize(new Dimension(600, 30));8GR办公区 - 实用经验教程分享!

    JButton button=new JButton("完成");8GR办公区 - 实用经验教程分享!

    button.setEnabled(false);8GR办公区 - 实用经验教程分享!

    Container container=getContentPane();8GR办公区 - 实用经验教程分享!

    container.setLayout(new GridLayout(3,1));8GR办公区 - 实用经验教程分享!

    JPanel panel1=new JPanel(new FlowLayout(FlowLayout.LEFT));8GR办公区 - 实用经验教程分享!

    JPanel panel2=new JPanel(new FlowLayout(FlowLayout.CENTER));8GR办公区 - 实用经验教程分享!

    JPanel panel3=new JPanel(new FlowLayout(FlowLayout.RIGHT));8GR办公区 - 实用经验教程分享!

    panel1.add(label); //添加标签8GR办公区 - 实用经验教程分享!

    panel2.add(progressBar); //添加进度条8GR办公区 - 实用经验教程分享!

    panel3.add(button); //添加按钮8GR办公区 - 实用经验教程分享!

    container.add(panel1);8GR办公区 - 实用经验教程分享!

    container.add(panel2);8GR办公区 - 实用经验教程分享!

    container.add(panel3);8GR办公区 - 实用经验教程分享!

    progressBar.setStringPainted(true);8GR办公区 - 实用经验教程分享!

    //如果不需要进度上显示“升级进行中...”,可注释此行8GR办公区 - 实用经验教程分享!

    progressBar.setString("升级进行中...");8GR办公区 - 实用经验教程分享!

    //如果需要使用不确定模式,可使用此行8GR办公区 - 实用经验教程分享!

    // progressBar.setIndeterminate(true);8GR办公区 - 实用经验教程分享!

    setVisible(true);8GR办公区 - 实用经验教程分享!

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);8GR办公区 - 实用经验教程分享!

    //开启一个线程处理进度8GR办公区 - 实用经验教程分享!

    new Progress(progressBar, button).start();8GR办公区 - 实用经验教程分享!

    //单机“完成”按钮结束程序8GR办公区 - 实用经验教程分享!

    button.addActionListener(new ActionListener(){8GR办公区 - 实用经验教程分享!

    @Override8GR办公区 - 实用经验教程分享!

    public void actionPerformed(ActionEvent e){8GR办公区 - 实用经验教程分享!

    dispose();8GR办公区 - 实用经验教程分享!

    System.exit(0);8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    });8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    class Progress extends Thread{8GR办公区 - 实用经验教程分享!

    JProgressBar progressBar;8GR办公区 - 实用经验教程分享!

    JButton button;8GR办公区 - 实用经验教程分享!

    //进度条上的数字8GR办公区 - 实用经验教程分享!

    int[] progressValues={6,18,27,39,51,66,81,100};8GR办公区 - 实用经验教程分享!

    Progress(JProgressBar progressBar,JButton button){8GR办公区 - 实用经验教程分享!

    this.progressBar=progressBar;8GR办公区 - 实用经验教程分享!

    this.button=button;8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    public void run(){8GR办公区 - 实用经验教程分享!

    for(int i=0;iprogressValues.length;i ){8GR办公区 - 实用经验教程分享!

    try{8GR办公区 - 实用经验教程分享!

    Thread.sleep(200);8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    catch(InterruptedException e){8GR办公区 - 实用经验教程分享!

    e.printStackTrace();8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    //设置进度条的值8GR办公区 - 实用经验教程分享!

    progressBar.setValue(progressValues[i]);8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    progressBar.setIndeterminate(false);8GR办公区 - 实用经验教程分享!

    progressBar.setString("升级完成!");8GR办公区 - 实用经验教程分享!

    button.setEnabled(true);8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

  • 3

    SwingUtils类代码如下:8GR办公区 - 实用经验教程分享!

    8GR办公区 - 实用经验教程分享!

    8GR办公区 - 实用经验教程分享!

    public class SwingUtils {8GR办公区 - 实用经验教程分享!

    public static void setCenter(JFrame jf) {8GR办公区 - 实用经验教程分享!

    int screenWidth=Toolkit.getDefaultToolkit().getScreenSize().width;8GR办公区 - 实用经验教程分享!

    int screenHeight=Toolkit.getDefaultToolkit().getScreenSize().height;8GR办公区 - 实用经验教程分享!

    int jframeWidth = 800;8GR办公区 - 实用经验教程分享!

    int jframeHeight = 600;8GR办公区 - 实用经验教程分享!

    jf.setBounds((screenWidth/2)-(jframeWidth/2), (screenHeight/2)-(jframeHeight/2),8GR办公区 - 实用经验教程分享!

    jframeWidth, jframeHeight);8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

    }8GR办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!8GR办公区 - 实用经验教程分享!


    标签: JAVA

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码