Program Description:
Today, I have created a simple progress bar program in Java using JProgressBar which consists of two separate programs/classes, the Main Program and the Plugin which is the progress bar property. The reason I separate these two classes is to understand the flow of the progress bar property easily which is our main objective in this project. So enjoy and leave some comments.
Output:
Code:
simpleProgressBar.java
/** * File: simpleProgressBar.java * Tiltle: Creating a Simple Progress Bar * Author: http://java-program-sample.blogspot.com/ */ //Java Core Package import javax.swing.*; //Java Extension Package import java.awt.*; import java.awt.event.*; public class simpleProgressBar extends JFrame { //Constructing JProgressBar and JButton JProgressBar bar = new JProgressBar(); JButton button = new JButton("Test Progress Bar"); //Setting up GUI public simpleProgressBar() { //Setting up the Title of the Window super("Creating a Simple Progress Bar"); //Set Size of the Window (WIDTH, HEIGHT) setSize(350,100); //Exit Property of the Window setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Setting up the container ready for the components to be added. Container pane = getContentPane(); setContentPane(pane); //Display the progress bar completion percentage label bar.setStringPainted(true); //Setting up the container layout GridLayout grid = new GridLayout(2,1); pane.setLayout(grid); //Adding the progress bar and the button to the container pane.add(bar); pane.add(button); //Implemeting Even-Listener on JButton button.addActionListener( new ActionListener() { //Handle JButton event if it is clicked public void actionPerformed(ActionEvent event) { button.setEnabled(false); //Disable the JButton if the progress bar starts the progress Thread run = new threadPlugin(bar); //Calling the class "threadPlugin" we created that extends with Thread run.start(); //run the thread to start the progress } } ); /**Set all the Components Visible. * If it is set to "false", the components in the container will not be visible. */ setVisible(true); } //Main Method public static void main (String[] args) { simpleProgressBar spb = new simpleProgressBar(); } }
threadPlugin.java
/** * File: threadPlugin.java * Tiltle: Creating a Simple Progress Bar (PLUGIN) * Author: http://java-program-sample.blogspot.com/ */ //Java Core Package import javax.swing.*; //Java Extension Package import java.awt.*; public class threadPlugin extends Thread { int Delay = 100; //Creating a delay or the speed of the progress bar JProgressBar pb; //Constructing Progress Bar //Creating a threadPlugin Method initializing JProgressBar so the Main Program "simpleProgressBar.java" //can recognize by the time we call this class for JProgressBar action. public threadPlugin(JProgressBar progressbar) { pb = progressbar; } //run Method. This is the area where we can adjust the performance of our progress bar. public void run() { int minimum = pb.getMinimum(); //initializing minimum value of the progress bar int maximum = pb.getMaximum(); //initializing maximum value of the progress bar //Initializing Progress from its minimum value 0 to its maximum value 100 for (int i = minimum; i < maximum; i++) { try { int value = pb.getValue(); pb.setValue(value + 1); //Testing the progress bar if it already reaches to its maximum value if (pb.getValue() >= maximum) { //Test confirmation if it runs perfectly JOptionPane.showMessageDialog(null, "Test Successful!","Success!",JOptionPane.INFORMATION_MESSAGE); } Thread.sleep(Delay); //Implementing the speed of the progress bar } catch (InterruptedException ignoredException) { //Catch an error if there is any } } } }