Java Swing JProgressBar進(jìn)度條的實(shí)現(xiàn)示例
1. 概述
官方JavaDocsApi: javax.swing.JProgressBar
JProgressBar,進(jìn)度條。
以可視化形式顯示某些任務(wù)進(jìn)度的組件。
進(jìn)度條中心可顯示進(jìn)度百分比的文本表示形式。
當(dāng)一個(gè)任務(wù)的進(jìn)度長度未知時(shí),可將進(jìn)度條設(shè)置為不確定模式。不確定模式的進(jìn)度條持續(xù)地顯示動(dòng)畫來表示正進(jìn)行的操作。當(dāng)
可以確定任務(wù)長度和進(jìn)度量時(shí),則可設(shè)置進(jìn)度條的最大最小值,以及更新進(jìn)度條的進(jìn)度值,將其切換回確定模式。
JProgressBar 常用構(gòu)造方法:
/** * 構(gòu)造方法中的參數(shù)含義: * orient: 進(jìn)度條的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL,默認(rèn)為水平方向 * min: 最小進(jìn)度值 * max: 最大進(jìn)度值 */ JProgressBar() JProgressBar(int orient) JProgressBar(int min, int max) JProgressBar(int orient, int min, int max)
JProgressBar 常用方法:
// 設(shè)置 最小進(jìn)度值、最大進(jìn)度值、當(dāng)前進(jìn)度值 void setMinimum(int min) void setMaximum(int max) void setValue(int n) // 獲取當(dāng)前進(jìn)度值 int getValue() // 獲取當(dāng)前進(jìn)度的百分比 double getPercentComplete() // 是否繪制百分比文本(進(jìn)度條中間顯示的百分?jǐn)?shù)) void setStringPainted(boolean b) // 設(shè)置進(jìn)度條進(jìn)度是否為不確定模式 void setIndeterminate(boolean newValue) // 設(shè)置進(jìn)度條的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL void setOrientation(int newOrientation) // 添加進(jìn)度條的進(jìn)度改變監(jiān)聽器 void addChangeListener(ChangeListener l)
2. 代碼實(shí)例
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)建一個(gè)進(jìn)度條 final JProgressBar progressBar = new JProgressBar(); // 設(shè)置進(jìn)度的 最小值 和 最大值 progressBar.setMinimum(MIN_PROGRESS); progressBar.setMaximum(MAX_PROGRESS); // 設(shè)置當(dāng)前進(jìn)度值 progressBar.setValue(currentProgress); // 繪制百分比文本(進(jìn)度條中間顯示的百分?jǐn)?shù)) progressBar.setStringPainted(true); // 添加進(jìn)度改變通知 progressBar.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { System.out.println("當(dāng)前進(jìn)度值: " + progressBar.getValue() + "; " + "進(jìn)度百分比: " + progressBar.getPercentComplete()); } }); // 添加到內(nèi)容面板 panel.add(progressBar); jf.setContentPane(panel); jf.setVisible(true); // 模擬延時(shí)操作進(jìn)度, 每隔 0.5 秒更新進(jìn)度 new Timer(500, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { currentProgress++; if (currentProgress > MAX_PROGRESS) { currentProgress = MIN_PROGRESS; } progressBar.setValue(currentProgress); } }).start(); } }
結(jié)果展示:
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java讀取文件顯示進(jìn)度條的實(shí)現(xiàn)方法
- java控制臺(tái)輸出百分比進(jìn)度條示例
- Java上傳文件進(jìn)度條的實(shí)現(xiàn)方法(附demo源碼下載)
- java實(shí)現(xiàn)在復(fù)制文件時(shí)使用進(jìn)度條(java實(shí)現(xiàn)進(jìn)度條)
- JavaWeb項(xiàng)目實(shí)現(xiàn)文件上傳動(dòng)態(tài)顯示進(jìn)度實(shí)例
- Java動(dòng)態(tài)顯示文件上傳進(jìn)度實(shí)現(xiàn)代碼
- 基于Retrofit+Rxjava實(shí)現(xiàn)帶進(jìn)度顯示的下載文件
- Java Swing組件實(shí)現(xiàn)進(jìn)度監(jiān)視功能示例
- java實(shí)現(xiàn)模擬進(jìn)度計(jì)量器
相關(guān)文章
ElasticSearch6.2.3+head插件安裝的方法步驟
這篇文章主要介紹了ElasticSearch6.2.3+head插件安裝的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02基于Java Socket實(shí)現(xiàn)一個(gè)簡易在線聊天功能(一)
這篇文章主要給大家介紹基于Java Socket實(shí)現(xiàn)一個(gè)簡易在線聊天功能(一),分為客戶端和服務(wù)端兩段代碼,非常具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05Netty分布式ByteBuf使用page級(jí)別的內(nèi)存分配解析
這篇文章主要介紹了Netty分布式ByteBuf使用page級(jí)別的內(nèi)存分配解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Java 自旋鎖(spinlock)相關(guān)知識(shí)總結(jié)
這篇文章主要介紹了Java 自旋鎖(spinlock)相關(guān)知識(shí)總結(jié),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2021-02-02SpringBoot集成Kafka 配置工具類的詳細(xì)代碼
spring-kafka 是基于 java版的 kafka client與spring的集成,提供了 KafkaTemplate,封裝了各種方法,方便操作,它封裝了apache的kafka-client,不需要再導(dǎo)入client依賴,這篇文章主要介紹了SpringBoot集成Kafka 配置工具類,需要的朋友可以參考下2022-09-09Java中l(wèi)ambda表達(dá)式實(shí)現(xiàn)aop切面功能
本文主要介紹了Java中l(wèi)ambda表達(dá)式實(shí)現(xiàn)aop切面功能,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02