Java Swing JProgressBar进度条的实现示例
1.概述
官方JavaDocsApi:javax.swing.JProgressBar
JProgressBar,进度条。
以可视化形式显示某些任务进度的组件。
进度条中心可显示进度百分比的文本表示形式。
当一个任务的进度长度未知时,可将进度条设置为不确定模式。不确定模式的进度条持续地显示动画来表示正进行的操作。当
可以确定任务长度和进度量时,则可设置进度条的最大最小值,以及更新进度条的进度值,将其切换回确定模式。
JProgressBar常用构造方法:
/** *构造方法中的参数含义: *orient:进度条的方向,SwingConstants.VERTICAL或SwingConstants.HORIZONTAL,默认为水平方向 *min:最小进度值 *max:最大进度值 */ JProgressBar() JProgressBar(intorient) JProgressBar(intmin,intmax) JProgressBar(intorient,intmin,intmax)
JProgressBar常用方法:
//设置最小进度值、最大进度值、当前进度值 voidsetMinimum(intmin) voidsetMaximum(intmax) voidsetValue(intn) //获取当前进度值 intgetValue() //获取当前进度的百分比 doublegetPercentComplete() //是否绘制百分比文本(进度条中间显示的百分数) voidsetStringPainted(booleanb) //设置进度条进度是否为不确定模式 voidsetIndeterminate(booleannewValue) //设置进度条的方向,SwingConstants.VERTICAL或SwingConstants.HORIZONTAL voidsetOrientation(intnewOrientation) //添加进度条的进度改变监听器 voidaddChangeListener(ChangeListenerl)
2.代码实例
packagecom.xiets.swing;
importjavax.swing.*;
importjavax.swing.event.ChangeEvent;
importjavax.swing.event.ChangeListener;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
publicclassMain{
privatestaticfinalintMIN_PROGRESS=0;
privatestaticfinalintMAX_PROGRESS=100;
privatestaticintcurrentProgress=MIN_PROGRESS;
publicstaticvoidmain(String[]args){
JFramejf=newJFrame("测试窗口");
jf.setSize(250,250);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanelpanel=newJPanel();
//创建一个进度条
finalJProgressBarprogressBar=newJProgressBar();
//设置进度的最小值和最大值
progressBar.setMinimum(MIN_PROGRESS);
progressBar.setMaximum(MAX_PROGRESS);
//设置当前进度值
progressBar.setValue(currentProgress);
//绘制百分比文本(进度条中间显示的百分数)
progressBar.setStringPainted(true);
//添加进度改变通知
progressBar.addChangeListener(newChangeListener(){
@Override
publicvoidstateChanged(ChangeEvente){
System.out.println("当前进度值:"+progressBar.getValue()+";"+
"进度百分比:"+progressBar.getPercentComplete());
}
});
//添加到内容面板
panel.add(progressBar);
jf.setContentPane(panel);
jf.setVisible(true);
//模拟延时操作进度,每隔0.5秒更新进度
newTimer(500,newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
currentProgress++;
if(currentProgress>MAX_PROGRESS){
currentProgress=MIN_PROGRESS;
}
progressBar.setValue(currentProgress);
}
}).start();
}
}
结果展示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。