IDEA中怎么设置项目更改后的分析延迟时间,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置项目更改后的分析延迟时间,这样就可确保项目范围分析的正确性,具体的操作步骤如下。......
2023-07-04 594 JAVA
进度条(JProgressBar)是一种以可视化形式显示某些任务进度的组件,比如我们常见的视频播放进度,音乐播放进度,下载进度等都用到了进度条。在任务的完成进度中,进度条显示该任务完成的百分比,看起来很直观。JavaSwing也有进度条组件:JProgressBar ,那么JProgressBar要怎么用呢?接下来小编就来介绍一下进度条的使用
JProgressBar常用的构造方法有两种:
构造方法1:
创建一个水平进度条,它显示边框,但没有进度字符串。初始值和最小值为0,最大值为100。
JProgressBar pgbar=new JProgressBar();
构造方法2:
创建具有指定方向的进度条,该方向可以是SwingConstants.VERTICAL或SwingConstants.HORIZONTAL。默认情况下,会绘制边框,但不会绘制进度字符串。初始值和最小值为0,最大值为100。
JProgressBar pgbar=new JProgressBar(int orient);
构造方法3:
创建一个指定最小值和最大值的水平进度条,初始值是指定的最小值。默认情况下,会绘制边框,但不会绘制进度字符串。
JProgressBar pgbar=new JProgressBar(intmin,int max);
构造方法4:
创建一个指定进度条方向、最小值和最大值的进度条,初始值是指定的最小值。默认情况下,会绘制边框,但不会绘制进度字符串。
getMaximum():返回进度条的最大值
getMinimum():返回进度条的最小值
getPercentComplete():返回进度条的完成百分比
getString():返回当前进度的 String 表示形式
getValue():返回进度条的当前 value
setBorderPainted(boolean b):设置 borderPainted 属性,如果进度条应该绘制其边框,则此属性为 true
setIndeterminate(boolea newValue):设置进度条的 indeterminate 属性,该属性确定进度条处于确定模式中是处于不确定模式中
setMaximum(int n):将进度条的最大值设置为 n
setMinimum(int n):将进度条的最小值设置为 n
setOrientation(int newOrientation):将进度条的方向设置为 newOrientation
setString(String s):设置进度字符串的值
setStringPainted(boolean b):设置 stringPainted 属性的值,该属性确定进度条是否应该呈现进度字符串
setValue(int n):将进度条的当前值设置为 n
updateUI():将 UI 属性重置为当前外观对应的值
定义一个进度条的进度数组 progressValues。线程每隔 200毫秒从数组中取一个数字作为当前进度,并使用 JProgressBar 类的 setValue() 方法更新到进度条。最后使进度条显示“升级完成!”字符串,并使“完成”按钮可用。
Demo23_JProgressBar类代码如下:
public class Demo23_JProgressBar extends JFrame{
public static void main(String[] args) {
new Demo23_JProgressBar();
}
public Demo23_JProgressBar() {
setTitle("使用进度条");
SwingUtils.setCenter(this);//设置窗体大小600*800并居中
JLabel label=new JLabel("欢迎使用在线升级功能!");
label.setFont(new Font("宋体", 1, 25));
//创建一个进度条
JProgressBar progressBar=new JProgressBar();
progressBar.setPreferredSize(new Dimension(600, 30));
JButton button=new JButton("完成");
button.setEnabled(false);
Container container=getContentPane();
container.setLayout(new GridLayout(3,1));
JPanel panel1=new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel panel2=new JPanel(new FlowLayout(FlowLayout.CENTER));
JPanel panel3=new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel1.add(label); //添加标签
panel2.add(progressBar); //添加进度条
panel3.add(button); //添加按钮
container.add(panel1);
container.add(panel2);
container.add(panel3);
progressBar.setStringPainted(true);
//如果不需要进度上显示“升级进行中...”,可注释此行
progressBar.setString("升级进行中...");
//如果需要使用不确定模式,可使用此行
// progressBar.setIndeterminate(true);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//开启一个线程处理进度
new Progress(progressBar, button).start();
//单机“完成”按钮结束程序
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
dispose();
System.exit(0);
}
});
}
}
class Progress extends Thread{
JProgressBar progressBar;
JButton button;
//进度条上的数字
int[] progressValues={6,18,27,39,51,66,81,100};
Progress(JProgressBar progressBar,JButton button){
this.progressBar=progressBar;
this.button=button;
}
public void run(){
for(int i=0;iprogressValues.length;i ){
try{
Thread.sleep(200);
}
catch(InterruptedException e){
e.printStackTrace();
}
//设置进度条的值
progressBar.setValue(progressValues[i]);
}
progressBar.setIndeterminate(false);
progressBar.setString("升级完成!");
button.setEnabled(true);
}
}
SwingUtils类代码如下:
public class SwingUtils {
public static void setCenter(JFrame jf) {
int screenWidth=Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight=Toolkit.getDefaultToolkit().getScreenSize().height;
int jframeWidth = 800;
int jframeHeight = 600;
jf.setBounds((screenWidth/2)-(jframeWidth/2), (screenHeight/2)-(jframeHeight/2),
jframeWidth, jframeHeight);
}
}
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: JAVA
相关文章
IDEA中怎么设置项目更改后的分析延迟时间,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置项目更改后的分析延迟时间,这样就可确保项目范围分析的正确性,具体的操作步骤如下。......
2023-07-04 594 JAVA
IDEA中怎么设置调试器最近表达式的最大数量,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置调试器最近表达式的最大数量,从而有效避免调试器中表达式存储过多。......
2023-07-04 416 JAVA