博为峰Java技术文章 ——JavaSE Swing 如何使用时间组件TimerⅡ

博为峰小博老师:

根据进度条,再结合Timer组件,下面将列举一个实例。该实例主要是演示一个进度条的动作事件。其程序代码如下所示:

publicclassBWFimplementsActionListener,ChangeListener{

JFramejf=null;

JProgressBarpb;

JLabellabel;

Timertimer;

JButtonb;

publicBWF(){

jf=newJFrame("博为峰教育");

jf.setSize(300, 200);

JPanelcontentPane=newJPanel();

jf.setContentPane(contentPane);

label=newJLabel(" ",JLabel.CENTER);

pb=newJProgressBar();

pb.setOrientation(JProgressBar.HORIZONTAL);

pb.setMinimum(0);//最小刻度

pb.setMaximum(100);//最大刻度

pb.setValue(0);

pb.setStringPainted(true);

pb.addChangeListener(this);//添加进度条变化事件

pb.setPreferredSize(newDimension(200, 300));

JPanelpanel=newJPanel();

b=newJButton("开始");

b.addActionListener(this);

panel.add(b);

timer=newTimer(50,this);

contentPane.add(panel,BorderLayout.NORTH);

contentPane.add(pb,BorderLayout.CENTER);

contentPane.add(label,BorderLayout.SOUTH);

jf.setVisible(true);

jf.addWindowListener(newWindowAdapter() {

publicvoidwindowClosing(WindowEvente) {

System.exit(0);

}

});

}

publicstaticvoidmain(String[]args) {

newBWF();

}

@Override

publicvoidstateChanged(ChangeEvente) {

intvalue=pb.getValue();

if(e.getSource()==pb){

label.setText("目前已完成进度:"+value+"%");

}

}

@Override

publicvoidactionPerformed(ActionEvente) {

if(e.getSource()==b){//单击开始时,计时开始

timer.start();

}

if(e.getSource()==timer){

intvalue=pb.getValue();

if(value<100){

value++;

pb.setValue(value);

}else{

timer.stop();

pb.setValue(0);

}

}

}

}

博为峰Java技术文章 ——JavaSE Swing 如何使用时间组件TimerⅡ_第1张图片

你可能感兴趣的:(博为峰Java技术文章 ——JavaSE Swing 如何使用时间组件TimerⅡ)