Swing进度条组件的使用

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

一、构造方法

JProgressBar常用的构造方法有两种:

  • 构造方法1: 创建一个水平进度条,它显示边框,但没有进度字符串。初始值和最小值为0,最大值为100。 JProgressBar
    pgbar=new JProgressBar();
    在这里插入图片描述
    在这里插入图片描述
  • 构造方法2:
    创建具有指定方向的进度条,该方向可以是SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。默认情况下,会绘制边框,但不会绘制进度字符串。初始值和最小值为0,最大值为100。
    JProgressBar pgbar=new JProgressBar(int orient);
    在这里插入图片描述
    在这里插入图片描述
  • 构造方法3: 创建一个指定最小值和最大值的水平进度条,初始值是指定的最小值。默认情况下,会绘制边框,但不会绘制进度字符串。
    JProgressBar pgbar=new JProgressBar(int min,int max);
    在这里插入图片描述
    在这里插入图片描述
    构造方法4:
    创建一个指定进度条方向、最小值和最大值的进度条,初始值是指定的最小值。默认情况下,会绘制边框,但不会绘制进度字符串。
    在这里插入图片描述
    在这里插入图片描述

二、常用方法

getMaximum():返回进度条的最大值

getMinimum():返回进度条的最小值

getPercentComplete():返回进度条的完成百分比

getString():返回当前进度的 String 表示形式

getValue():返回进度条的当前 value

setBorderPainted(boolean b):设置 borderPainted 属性,如果进度条应该绘制其边框,则此属性为 true

setIndeterminate(boolea newValue):设置进度条的 indeterminate 属性,该属性确定进度条处于确定模式中是处于不确定模式中

setMaximum(int n):将进度条的最大值设置为 n

setMinimum(int n):将进度条的最小值设置为 n

setOrientation(int newOrientation):将进度条的方向设置为 newOrientation

setString(String s):设置进度字符串的值

setStringPainted(boolean b):设置 stringPainted 属性的值,该属性确定进度条是否应该呈现进度字符串

setValue(int n):将进度条的当前值设置为 n

updateUI():将 UI 属性重置为当前外观对应的值

三、实例

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

package swing;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Toolkit;
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;
/**
 *swing 进度条
 */
public class Demo23_JProgressBar extends JFrame{
	public static void main(String[] args) {
		new Demo23_JProgressBar();
	}
	public Demo23_JProgressBar() {
		setTitle("使用进度条");
		SwingUtils.setCenter(this);//设置窗体大小600*800并居中
        JLabel label=new JLabel("欢迎使用在线升级功能!");
        label.setFont(new Font("宋体", 1, 25));
        //创建一个进度条
        JProgressBar progressBar=new JProgressBar();
        progressBar.setPreferredSize(new Dimension(600, 30));
        JButton button=new JButton("完成");
        button.setEnabled(false);
        Container container=getContentPane();
        container.setLayout(new GridLayout(3,1));
        JPanel panel1=new JPanel(new FlowLayout(FlowLayout.LEFT));
        JPanel panel2=new JPanel(new FlowLayout(FlowLayout.CENTER));
        JPanel panel3=new JPanel(new FlowLayout(FlowLayout.RIGHT));
        panel1.add(label);    //添加标签
        panel2.add(progressBar);    //添加进度条
        panel3.add(button);    //添加按钮
        container.add(panel1);
        container.add(panel2);
        container.add(panel3);
        progressBar.setStringPainted(true);
        //如果不需要进度上显示“升级进行中...”,可注释此行
        progressBar.setString("升级进行中...");
        //如果需要使用不确定模式,可使用此行
//        progressBar.setIndeterminate(true);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //开启一个线程处理进度
        new Progress(progressBar, button).start();
        //单机“完成”按钮结束程序
        button.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e){
                dispose();
                System.exit(0);
            }
        });
	}
}
class Progress extends Thread{
    JProgressBar progressBar;
    JButton button;
    //进度条上的数字
    int[] progressValues={6,18,27,39,51,66,81,100};
    Progress(JProgressBar progressBar,JButton button){
        this.progressBar=progressBar;
        this.button=button;
    }
    public void run(){
        for(int i=0;i<progressValues.length;i++){
            try{
                Thread.sleep(200);
            }
            catch(InterruptedException e){
                e.printStackTrace();
            }
            //设置进度条的值
            progressBar.setValue(progressValues[i]);
        }
        progressBar.setIndeterminate(false);
        progressBar.setString("升级完成!");
        button.setEnabled(true);
    }
}

在这里插入图片描述

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java 图形界面开发简介 .............. ................................ ................................ ..... 5 1. Swing1. Swing1. Swing 1. Swing1. Swing1. Swing1. Swing简介 ................................ ................................ ................................ ................................ ............... 5 2. Swing2. Swing2. Swing 2. Swing2. Swing2. Swing2. Swing组件 ................................ ................................ ................................ ................................ ............... 5 3. 3. 3. 布局管理器 布局管理器 ................................ ................................ ................................ ................................ ............. 8 4. 4. 4. 代码实例 代码实例 : 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 一个简单的窗口程序 ................................ ................................ ................................ ..... 9 1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo1.1: FlowLayo 1.1: FlowLayo 1.1: FlowLayout (流式布局) (流式布局) (流式布局) (流式布局) ................................ ................................ ................................ ...................... 10 1. 概述 ................................ ................................ ................................ ................................ ....................... 10 2. 代码实例 ................................ ................................ ................................ ................................ .............. 11 1.2: GridLayout(网格布局) (网格布局) (网格布局) (网格布局) ................................ ................................ ................................ ..................... 13 1. 概述 ................................ ................................ ................................ ................................ ....................... 13 2. 代码演示 ................................ ................................ ................................ ................................ .............. 14 1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout 1.3: GridBagLayout1.3: GridBagLayout(网格袋布局) (网格袋布局) (网格袋布局) (网格袋布局) ................................ ................................ ................................ ........... 17 1. 布局 : GridBagLayout ................................ ................................ ................................ ...................... 17 2. 约束 : GridBagConstraints ................................ ................................ ................................ ............. 17 3. 属性 : GridBagConstraints 的属性 ................................ ................................ ............................. 18 4. 案例 : GridBagLayout使用实例 使用实例 ................................ ................................ ................................ ... 19 1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout 1.4: BoxLayout1.4: BoxLayout1.4: BoxLayout 1.4: BoxLayout1.4: BoxLayout(箱式布局) (箱式布局) (箱式布局) (箱式布局) ................................ ................................ ................................ ........................ 25 1. 概述 ................................ ................................ ................................ ................................ ....................... 25 2. 代码实例 ................................ ................................ ................................ ................................ .............. 27 1.5: GroupLayout(分组布局) (分组布局) (分组布局) ................................ ................................ ................................ ................. 29 1. 概述 ................................ ................................ ................................ ................................ ....................... 29 2. 代码实例 ................................ ................................ ................................ ................................ .............. 31 1.6: CardLayout(卡片布局) (卡片布局) (卡片布局) ................................ ................................ ................................ .................... 36 1. 概述 ................................ ................................ ................................ ................................ ....................... 36 2. 代码实例 ................................ ................................ ................................ ................................ .............. 37 1.7: BorderLayout(边界布局) (边界布局) (边界布局) ................................ ................................ ................................ ................ 40 1. 概述 ................................ ................................ ................................ ................................ ....................... 40 2. 代码实例 ................................ ................................ ................................ ................................ .............. 41 1.8: SpringLayout(弹性布局) (弹性布局) (弹性布局) ................................ ................................ ................................ ................ 43 1. 概述 ................................ ................................ ................................ ................................ ....................... 43 2. 代码实例 ................................ ................................ ................................ ................................ .............. 47 1.9: null(绝对布局) (绝对布局) (绝对布局) ................................ ................................ ................................ ................................ .... 52 1. 概述 ................................ ................................ ................................ ................................ ....................... 52 2. 代码实例 ................................ ................................ ................................ ................................ .............. 53 2.1: JLabel(标签) (标签) (标签) ................................ ................................ ................................ ................................ ....... 56 1. 概述 ................................ ................................ ................................ ................................ ....................... 56 2. 代码实例 ................................ ................................ ................................ ................................ .............. 61 2.2: JButton(按钮) (按钮) (按钮) ................................ ................................ ................................ ................................ ..... 64 1. 概述 ................................ ................................ ................................ ................................ ....................... 64 2. 代码实例 : 默认按钮 默认按钮 ................................ ................................ ................................ ........................ 66 3. 代码实例 : 自定义图片按钮 自定义图片按钮 自定义图片按钮 自定义图片按钮 ................................ ................................ ................................ .......... 68 2.3: JRadioButton(单选按钮) (单选按钮) (单选按钮) ................................ ................................ ................................ ................ 71 2 1. 概述 ................................ ................................ ................................ ................................ ....................... 71 2. 代码实例 ................................ ................................ ................................ ................................ .............. 73 2.4: JCheckBox(复选框) (复选框) (复选框) ................................ ................................ ................................ ......................... 75 1. 概述 ................................ ................................ ................................ ................................ ....................... 75 2. 代码实例 ................................ ................................ ................................ ................................ .............. 77 2.5: JToggleButton(开关按钮) (开关按钮) (开关按钮) ................................ ................................ ................................ .............. 80 1. 概述 ................................ ................................ ................................ ................................ ....................... 80 2. 代码实例 : 默认 的开关按钮 的开关按钮 的开关按钮 ................................ ................................ ................................ .......... 82 3. 代码实例 : 自定义图片开关 自定义图片开关 自定义图片开关 自定义图片开关 ................................ ................................ ................................ .......... 84 2.6: JTextField(文本框) (文本框) (文本框) ................................ ................................ ................................ ........................... 87 1. 概述 ................................ ................................ ................................ ................................ ....................... 87 2. 实例代码 ................................ ................................ ................................ ................................ .............. 91 2.7:PasswordField(密码框) (密码框) (密码框) ................................ ................................ ................................ ................... 93 1. 概述 ................................ ................................ ................................ ................................ ....................... 93 2. 代码实例 ................................ ................................ ................................ ................................ .............. 96 2.8: JTextArea(文本区域) (文本区域) (文本区域) (文本区域) ................................ ................................ ................................ ....................... 98 1. 概述 ................................ ................................ ................................ ................................ ....................... 98 2. 代码实例 ................................ ................................ ................................ ................................ ............ 103 2.9: JComboBox(下拉列表框) (下拉列表框) (下拉列表框) ................................ ................................ ................................ ............ 105 1. 概述 ................................ ................................ ................................ ................................ ..................... 105 2. 代码实例 ................................ ................................ ................................ ................................ ............ 107 2.10: JList(列 表框) 表框) ................................ ................................ ................................ ................................ .. 110 1. 概述 ................................ ................................ ................................ ................................ ..................... 110 2. 代码实例 ................................ ................................ ................................ ................................ ............ 113 2.11: JProgressBar(进度条) (进度条) (进度条) ................................ ................................ ................................ ................ 117 1. 概述 ................................ ................................ ................................ ................................ ..................... 117 2. 代码实例 ................................ ................................ ................................ ................................ ............ 119 2.12: JSlider(滑块) (滑块) (滑块) ................................ ................................ ................................ ................................ .. 123 1. 概述 ................................ ................................ ................................ ................................ ..................... 123 2. 代码实例 : 默认刻度值 默认刻度值 默认刻度值 ................................ ................................ ................................ .................. 126 3. 代码实例 : 自定义标签刻度值 自定义标签刻度值 自定义标签刻度值 自定义标签刻度值 ................................ ................................ ................................ .... 128 3.1: JPanel(面板) (面板) ................................ ................................ ................................ ................................ ..... 132 1. 概述 ................................ ................................ ................................ ................................ ..................... 132 2. 代码实例 ................................ ................................ ................................ ................................ ............ 133 3.2: JScrollPane(滚动面板) (滚动面板) (滚动面板) (滚动面板) ................................ ................................ ................................ ................. 135 1. 概述 ................................ ................................ ................................ ................................ ..................... 135 2. 代码实例 ................................ ................................ ................................ ................................ ............ 138 3.2: JScrollPane(滚动面板) (滚动面板) (滚动面板) (滚动面板) ................................ ................................ ................................ ................. 140 1. 概述 ................................ ................................ ................................ ................................ ..................... 140 2. 代码实例 ................................ ................................ ................................ ................................ ............ 142 3.4: JTabbedPane(选项卡面板) (选项卡面板) (选项卡面板) (选项卡面板) ................................ ................................ ................................ ......... 145 1. 概述 ................................ ................................ ................................ ................................ ..................... 145 2. 代码实例 ................................ ................................ ................................ ................................ ............ 149 3.5: JLayeredPane(层级面板) (层级面板) (层级面板) ................................ ................................ ................................ ............

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辛勤小王子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值