1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
public class TestProgressBar extends JFrame implements ActionListener {
private JProgressBar jpb;
private JButton b1;
public TestProgressBar() {
super();
jpb = new JProgressBar(0, 100);
b1 = new JButton("Start");
b1.addActionListener(this);
JPanel buttonPanel = new JPanel();
buttonPanel.add(b1);
setLayout(new BorderLayout());
add(buttonPanel, BorderLayout.WEST);
add(jpb, BorderLayout.SOUTH);
}
public static void main(String ...args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
TestProgressBar dialog = new TestProgressBar();
dialog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
dialog.setVisible(true);
dialog.pack();
}
});
}
public void refreshProgress(JProgressBar jpb) {
try {
for (int i = 0; i < 100; i++) {
jpb.setValue(i);
jpb.repaint();
Thread.sleep(100);
}
}
catch (InterruptedException e) {
e.printStackTrace();
}
finally {
b1.setEnabled(true);
}
}
/** {@inheritDoc}
*/
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == b1) {
b1.setEnabled(false);
jpb.setValue(0);
/*Thread JProgressBar*/
Thread runner = new Thread(new Runnable() {
/** {@inheritDoc}
*/
public void run() {
refreshProgress(jpb);
}
});
runner.setPriority(Thread.NORM_PRIORITY);
runner.start();
}
}
} |
Partager