Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Virtical JProgressBar

To change the label to a fixed string, call the public void setString(String newValue) method and setStringPainted(true). On a vertical progress bar, the string is drawn rotated, so a longer string will fit better. import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JProgressBar; class BarThread extends Thread {   private static int DELAY = 500;   JProgressBar progressBar;   public BarThread(JProgressBar bar) {     progressBar = bar;   }   public void run() {     int minimum = progressBar.getMinimum();     int maximum = progressBar.getMaximum();     for (int i = minimum; i < maximum; i++) {       try {         int value = progressBar.getValue();         progressBar.setValue(value + 1);         Thread.sleep(DELAY);       } catch (InterruptedException ignoredException) {       }     }   } } public class ProgressBarStep {   public static void main(String args[]) {     JFrame frame = new JFrame("Stepping Progress");     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     final JProgressBar aJProgressBar = new JProgressBar(JProgressBar.VERTICAL);     aJProgressBar.setStringPainted(true);     final JButton aJButton = new JButton("Start");     ActionListener actionListener = new ActionListener() {       public void actionPerformed(ActionEvent e) {         aJButton.setEnabled(false);         Thread stepper = new BarThread(aJProgressBar);         stepper.start();       }     };     aJButton.addActionListener(actionListener);     frame.add(aJProgressBar, BorderLayout.NORTH);     frame.add(aJButton, BorderLayout.SOUTH);     frame.setSize(300, 200);     frame.setVisible(true);   } }