Java - JProgressBar


Klasa JProgressBar se koristi za prikaz napretka zadatka (trake napretka). Nasljeđuje klasu JComponent. Pogledajmo deklaraciju za klasu javax.swing.JProgressBar:

public class JProgressBar extends JComponent implements SwingConstants, Accessible  


Najčešće korišteni konstruktori

Konstruktor Opis
JProgressBar() Koristi se za kreiranje horizontalne trake napretka, ali bez teksta stringa.
JProgressBar(int min, int max) Koristi se za kreiranje horizontalne trake napretka sa navedenom minimalnom i maksimalnom vrijednošću.
JProgressBar(int orient) Koristi se za kreiranje trake napretka sa specifikovanom orijentacijom, može biti ili vertikalna ili horizontalna korištenjem konstanti SwingConstants.VERTICAL i SwingConstants.HORIZONTAL.
JProgressBar(int orient, int min, int max) Koristi se za kreiranje trake napretka sa navedenom orijentacijom, minimalnom i maksimalnom vrijednošću.


Najčešće korištene metode

Metod Opis
void setStringPainted(boolean b) Koristi se za određivanje da li string treba biti prikazan.
void setString(String s) Koristi se za postavljanje vrijednosti stringa napretka.
void setOrientation(int orientation) Koristi se za postavljanje orijentacije, može biti vertikalna ili horizontalna korištenjem konstanti SwingConstants.VERTICAL i SwingConstants.HORIZONTAL.
void setValue(int value) Koristi se za postavljanje trenutne vrijednosti na traci napretka.


Primjer Java JProgressBar

import javax.swing.*;  

public class Main extends JFrame{    
    JProgressBar jb;    
    int i = 0,num = 0;     
    Main(){    
        // Kriranje ProgressBar-a, veličine i brzine pomjeranja
        jb=new JProgressBar(0,2000);    
        jb.setBounds(40,40,160,30);         
        jb.setValue(0);    
        jb.setStringPainted(true); 
        
        // Dodavanje komponenti
        add(jb);    
        setSize(250,150);    
        setLayout(null);   
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }    
    // Iteracija kojom se brzinom izvodi izvršavanje ProgressBar-a
    public void iterate(){    
        while(i<=2000){    
          jb.setValue(i);    
          i=i+20;    
          try{Thread.sleep(150);}catch(Exception e){}    
        }    
    }    
    // Metoda Main
    public static void main(String[] args) {    
        Main m = new Main();    
        m.setVisible(true);    
        m.iterate();  
    }    
}

Prikaz koda iz gornjeg primjera izgledaće ovako: