java-swing-高级组件初步-进度条

进度条,就是一种可以 可视化地 显示某项任务的进度的组件,大概长这个样子:
在这里插入图片描述
实现进度条的是JProgressBar 类

下面是它的一些构造方法:

构造方法说明
JProgressBar ()创建一个范围在 0~100 且初始值为 50 的进度条
JProgressBar (BoundedRangeModel brm)使用指定的 BoundedRangeModel 创建一个进度条
JProgressBar (int orientation)使用指定的方向创建一个进度条,范围在 0~100 且初始值为 50
JProgressBar (int min,int max)使用指定的最小值和最大值来创建一个进度条,初始值等于最小值加上最大值的平均值
JProgressBar (int min,int max,int value)用指定的最小值、最大值和初始值创建一个进度条

感觉和滑块差不多——对,就是差不多0.0!

这是一些常用的方法:

方法名称说明
getMaximum()返回进度条的最大值
getMinimum()返回进度条的最小值
getPercentComplete()返回进度条的完成百分比
getString()返回当前进度的 String 表示形式
getValue()返回进度条的当前 value
setBorderPainted(boolean b)设置 borderPainted 属性,如果进度条应该绘制其边框,则此属性为 true
setIndeterminate(boolean
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 属性重置为当前外观对应的值

知道还不行,现在赶快来创建一个进度条

import javax.swing.JProgressBar;  //要导入的类,用于实现进度条

创建进度条:

JProgressBar jprogressbar1 = new JProgressBar();  //这是一个进度条
jprogressbar1.setMaximum(100);  //用于设置进度条的最大值
jprogressbar1.setMinimum(0);   //当然了,这个就是最小值
//上面三行代码,也可以用第4个构造方法实现,如下。
//JProgressBar jprogressbar1 = new JProgressBar(0,100);

下面是完整的代码:

import javax.swing.JPanel; //面板
import javax.swing.JButton;  //按钮
import javax.swing.JFrame;   //顶层容器 (框架)
import javax.swing.JLabel;   //标签
import javax.swing.JProgressBar;  //进度条的类

public class text_JProgressBar
{
    public static void main(String args[])
    {
    	JFrame jframe = new JFrame("进度条");  //窗口
		jframe.setSize(450, 100);   //设置窗口大小
		JPanel jpanel1 = new JPanel();  //面板
		JButton jbutton1 = new JButton("完成"); 
		jbutton1.setEnabled(false);   //设置按钮不可用,为灰色
		JLabel jlabel1 = new JLabel("当前进度:");
		
		JProgressBar jprogressbar1 = new JProgressBar();  //创建进度条
		jprogressbar1.setMaximum(100);
		jprogressbar1.setMinimum(0);
		
		jpanel1.add(jlabel1);
    	jpanel1.add(jprogressbar1); //添加进度条
    	jpanel1.add(jbutton1);   //添加按钮
		jframe.add(jpanel1);   //添加面板
		
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭时操作
		jframe.setVisible(true);   //设置可见
	}
}

运行结果是这样的:
在这里插入图片描述
它还不会动,现在添加一点代码,让它动起来,从空到满

try
{   
	int i=0;
	for(; i<=100; i++)  //从0到100
	{
		if(i == 100)
		{
			jbutton1.setEnabled(true); //进度条满了设置按钮可用
		}
	jprogressbar1.setValue(i);  //设置进度条的当前值
	Thread.sleep(50);      //堵塞50毫秒
	}
} catch (InterruptedException e) {}

添加后的完整代码:

public class view
{
    public static void main(String args[])
    {
    	JFrame jframe = new JFrame("进度条");  //窗口
		jframe.setSize(450, 100);   //设置窗口大小
		JPanel jpanel1 = new JPanel();  //面板
		JButton jbutton1 = new JButton("完成"); 
		jbutton1.setEnabled(false);   //设置按钮不可用,为灰色
		JLabel jlabel1 = new JLabel("当前进度:");
		
		JProgressBar jprogressbar1 = new JProgressBar();  //创建进度条
		jprogressbar1.setMaximum(100);
		jprogressbar1.setMinimum(0);
		
		jpanel1.add(jlabel1);
    	jpanel1.add(jprogressbar1); //添加进度条
    	jpanel1.add(jbutton1);   //添加按钮
		jframe.add(jpanel1);   //添加面板
		
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭时操作
		jframe.setVisible(true);   //设置可见
		
		try
		{   
			int i=0;    //计数器
			for(; i<=100; i++)  //从0到100
			{
				if(i == 100)
				{
					jbutton1.setEnabled(true); //进度条满了设置按钮可用
				}
			jprogressbar1.setValue(i);  //设置进度条的当前值
			Thread.sleep(50);      //堵塞50毫秒
			}
		} catch (InterruptedException e) {}
	}
}

运行结果:
在这里插入图片描述
水印我没办法弄掉,凑合看吧,嘿嘿…

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值