Java Swing JProgressBar進度條的實現(xiàn)示例
1. 概述
官方JavaDocsApi: javax.swing.JProgressBar
JProgressBar,進度條。
以可視化形式顯示某些任務進度的組件。
進度條中心可顯示進度百分比的文本表示形式。
當一個任務的進度長度未知時,可將進度條設置為不確定模式。不確定模式的進度條持續(xù)地顯示動畫來表示正進行的操作。當
可以確定任務長度和進度量時,則可設置進度條的最大最小值,以及更新進度條的進度值,將其切換回確定模式。
JProgressBar 常用構造方法:
/** * 構造方法中的參數(shù)含義: * orient: 進度條的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL,默認為水平方向 * min: 最小進度值 * max: 最大進度值 */ JProgressBar() JProgressBar(int orient) JProgressBar(int min, int max) JProgressBar(int orient, int min, int max)
JProgressBar 常用方法:
// 設置 最小進度值、最大進度值、當前進度值 void setMinimum(int min) void setMaximum(int max) void setValue(int n) // 獲取當前進度值 int getValue() // 獲取當前進度的百分比 double getPercentComplete() // 是否繪制百分比文本(進度條中間顯示的百分數(shù)) void setStringPainted(boolean b) // 設置進度條進度是否為不確定模式 void setIndeterminate(boolean newValue) // 設置進度條的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL void setOrientation(int newOrientation) // 添加進度條的進度改變監(jiān)聽器 void addChangeListener(ChangeListener l)
2. 代碼實例
package com.xiets.swing;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main {
private static final int MIN_PROGRESS = 0;
private static final int MAX_PROGRESS = 100;
private static int currentProgress = MIN_PROGRESS;
public static void main(String[] args) {
JFrame jf = new JFrame("測試窗口");
jf.setSize(250, 250);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
// 創(chuàng)建一個進度條
final JProgressBar progressBar = new JProgressBar();
// 設置進度的 最小值 和 最大值
progressBar.setMinimum(MIN_PROGRESS);
progressBar.setMaximum(MAX_PROGRESS);
// 設置當前進度值
progressBar.setValue(currentProgress);
// 繪制百分比文本(進度條中間顯示的百分數(shù))
progressBar.setStringPainted(true);
// 添加進度改變通知
progressBar.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("當前進度值: " + progressBar.getValue() + "; " +
"進度百分比: " + progressBar.getPercentComplete());
}
});
// 添加到內容面板
panel.add(progressBar);
jf.setContentPane(panel);
jf.setVisible(true);
// 模擬延時操作進度, 每隔 0.5 秒更新進度
new Timer(500, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
currentProgress++;
if (currentProgress > MAX_PROGRESS) {
currentProgress = MIN_PROGRESS;
}
progressBar.setValue(currentProgress);
}
}).start();
}
}
結果展示:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
ElasticSearch6.2.3+head插件安裝的方法步驟
這篇文章主要介紹了ElasticSearch6.2.3+head插件安裝的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-02-02
基于Java Socket實現(xiàn)一個簡易在線聊天功能(一)
這篇文章主要給大家介紹基于Java Socket實現(xiàn)一個簡易在線聊天功能(一),分為客戶端和服務端兩段代碼,非常具有參考價值,感興趣的朋友一起學習吧2016-05-05
Netty分布式ByteBuf使用page級別的內存分配解析
這篇文章主要介紹了Netty分布式ByteBuf使用page級別的內存分配解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03
Java中l(wèi)ambda表達式實現(xiàn)aop切面功能
本文主要介紹了Java中l(wèi)ambda表達式實現(xiàn)aop切面功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

