packageQQ;importjava.awt.BorderLayout;importjava.awt.Dimension;importjavax.swing.*;importjava.awt.event.*;importjavax.swing.event.ChangeEvent;importjavax.swing.event.Chan...
package QQ;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.xml.ws.Dispatch;
public class Progress_bar extends JFrame implements ActionListener
{
private static final long serialVersionUID = -2543187469376323631L;
//ActionListener ,ChangeListener是 2个实现进度条的 接口
private JPanel panel;
private Timer timer;
private JButton btn;
private JProgressBar pgb;
private JLabel label;
public void init()
{
panel = new JPanel();
btn = new JButton("start");
btn.addActionListener(this);
panel.add (btn,BorderLayout.CENTER);
timer = new Timer(1,this);//控制进度条速度
pgb = new JProgressBar();//可视化进度条(显示进度条)
pgb.setOrientation (JProgressBar.HORIZONTAL);
pgb.setMaximum (100);//显示已完成多少(到多少)
pgb.setMinimum (0);//显示已完成多少(从多少开始)
pgb.setValue (0);//将进度条的当前值设置为 0
pgb.setStringPainted (true);//设置 stringPainted 属性的值,
//该属性确定进度条是否应该呈现进度字符串。
pgb.setPreferredSize (new Dimension(400,80));
//Dimension 类封装单个对象中组件的宽度和高度(好像没什么 用)
label = new JLabel("正在启动QQ...");//创建一个标示(用于显示进度文字的显示)
JFrame frame = new JFrame("test");
frame.add (panel,BorderLayout.SOUTH);
frame.add (pgb,BorderLayout.CENTER);
frame.add (label,BorderLayout.NORTH);
frame.setBounds(450, 300, 350, 100);//设置窗体长和宽
frame.setVisible (true);//显示窗体
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);//关闭有效
}
public static void main(String args[])
{
new Progress_bar().init (); //执行 程序
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource ()==btn)
{
timer.start ();
}
if(e.getSource ()==timer)
{
int value = pgb.getValue () ;
if(value<100)
{
value++;
pgb.setValue (value);
}
if(value ==100)
{
timer.stop ();
pgb.setValue (0);
dispose();
}
}
}
}
展开