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;
public class TestJProgressBar implements ActionListener ,ChangeListener
{
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(100,this);
pgb = new JProgressBar();
pgb.setOrientation (JProgressBar.HORIZONTAL);
pgb.setMaximum (100);
pgb.setMinimum (0);
pgb.setValue (0);
pgb.setStringPainted (true);
pgb.addChangeListener (this);
pgb.setPreferredSize (new Dimension(400,20));
label = new JLabel("");
JFrame frame = new JFrame("test");
frame.add (panel,BorderLayout.NORTH);
frame.add (pgb,BorderLayout.CENTER);
frame.add (label,BorderLayout.SOUTH);
frame.setSize(400,100);
frame.setVisible (true);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[])
{
new TestJProgressBar().init ();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource ()==btn)
{
timer.start ();
System.out.println ("come here!");
}
if(e.getSource ()==timer)
{
System.out.println ("come here too!");
int value = pgb.getValue () ;
if(value<100)
{
value++;
pgb.setValue (value);
}
if(value ==100)
{
timer.stop ();
pgb.setValue (0);
}
}
}
public void stateChanged(ChangeEvent e)
{
System.out.println ("come here too2!");
if(e.getSource ()==pgb)
{
int value = pgb.getValue ();
label.setText ("以完成:"+value+"%");
}
}
}