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