预备知识
创建进度条类后将其直接加入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();
}
}
运行结果:
在程序中添加一句:jpb.setValue(50);
则设置当前进度值。
运行结果:
在此基础上再加句:jpb.setStringPainted(true);
则以字符串显示当前进度。
运行结果:
于是怎样使用进度条大致就明朗了。
剩下的就是添加事件监听让进度条动起来。
在以上代码基础上改变为:
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监听器一次