预备知识

java jprogressbar java jprogressbar setui_java jprogressbar


创建进度条类后将其直接加入JFrame看看效果

public class JProgressBarDemo2 {
	public static void main(String args[]) {
		JFrame jf =new JFrame() ;
		JProgressBar jpb = new JProgressBar() ;
		
		jpb.setPreferredSize(new Dimension(400,30));//设置好首选大小利于显示
		jpb.setBackground(Color.black);
		
		jf.getContentPane().add(jpb);
		jf.setVisible(true);
		jf.pack();
	}
}

运行结果:

java jprogressbar java jprogressbar setui_事件监听_02


在程序中添加一句:jpb.setValue(50);

则设置当前进度值。

运行结果:

java jprogressbar java jprogressbar setui_进度条_03


在此基础上再加句:jpb.setStringPainted(true);

则以字符串显示当前进度。

运行结果:

java jprogressbar java jprogressbar setui_java jprogressbar_04


于是怎样使用进度条大致就明朗了。

剩下的就是添加事件监听让进度条动起来。

在以上代码基础上改变为:

public class JProgressBarDemo2 extends MouseAdapter{
	private JProgressBar jpb;
	private Timer timer;
	public static void main(String args[]) {
		new JProgressBarDemo2();
	}
	public JProgressBarDemo2() {
		JFrame jf =new JFrame() ;
		
		jpb = new JProgressBar();
		jpb.setPreferredSize(new Dimension(400,30));//设置好首选大小利于显示
		jpb.setBackground(Color.black);
		jpb.setValue(50);
		jpb.setStringPainted(true);
		
		timer = new Timer(100,new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int value = jpb.getValue() ;
				jpb.setValue(++value);
			}
		});
		
		jf.addMouseListener(this);
		jf.getContentPane().add(jpb);
		jf.setVisible(true);
		jf.pack();
	}
	public void mouseEntered(MouseEvent arg0) {
		timer.start();
	}
}

运行结果:

当鼠标进入窗体会触发鼠标进入事件,timer开始执行,每隔100毫秒通知ActionListener监听器一次

java jprogressbar java jprogressbar setui_事件监听_05