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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。