博为峰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);

}

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容