Java - JSpinner


Objekt JSpinner klase je jednolinijsko polje za unos koje omogućava korisniku da odabere broj ili vrijednost objekta iz uređenog niza. Pogledajmo deklaraciju za klasu javax.swing.JSpinner:

public class JSpinner extends JComponent implements Accessible  


Najčešće korišteni konstruktori

Konstruktor Opis
JSpinner() Koristi se za konstruisanje spinera sa Integer SpinnerNumberModel sa početnom vrijednošću 0 i bez minimalnih ili maksimalnih ograničenja.
JSpinner(SpinnerModel model) Koristi se za konstruisanje spinera za dati model.


Najčešće korištene metode

Metod Opis
void addChangeListener(ChangeListener listener) Koristi se za dodavanje slušaoca na listu, koji obavještava svaki put kada dođe do promjene modela.
Object getValue() Koristi se za vraćanje trenutne vrijednosti modela.


Primjer Java JSpinner-a

import javax.swing.*;
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;

public class Main {  
    public static void main(String[] args) {  
        // Kreiranje Frame-a, kao i SpinnerModel koji sadrži četiri broja:
        // 1-i broj - Početna vrijednost
        // 2-i broj - Minimalna vrijednost
        // 3-i broj - Maksimalna vrijednost
        // 4-i broj - Korak
        JFrame f=new JFrame("Primjer Spinner");    
        SpinnerModel value =  new SpinnerNumberModel(5, 0,  10, 1);
        
        // Veličina Spinner-a
        JSpinner spinner = new JSpinner(value);   
        spinner.setBounds(100,100,50,30);
        
        // Dodavanje elementata u Frame i podešavanje veličine
        f.add(spinner);    
        f.setSize(300,300);    
        f.setLayout(null);    
        f.setVisible(true);
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }  
}

Prikaz koda iz gornjeg primjera izgledaće ovako:



Primjer Java JSpinner sa ChangeListener

import javax.swing.*;    
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;
import javax.swing.event.*;  

public class Main {  
    public static void main(String[] args) {  
        // Kreiranje Frame-a i dodavanje naziva
        JFrame f = new JFrame("Primjer Spinne");
        
        final JLabel label = new JLabel();            
        label.setHorizontalAlignment(JLabel.CENTER);    
        label.setSize(250,100); 
        // Kreiranje Frame-a, kao i SpinnerModel koji sadrži četiri broja:
        // 1-i broj - Početna vrijednost
        // 2-i broj - Minimalna vrijednost
        // 3-i broj - Maksimalna vrijednost
        // 4-i broj - Korak
        SpinnerModel value = new SpinnerNumberModel(5, 0, 10,1);
        JSpinner spinner = new JSpinner(value);   
        spinner.setBounds(100,100,50,30);    
        
        // Dodavanje elemenata na Frame
        f.add(spinner);  f.add(label);  
        f.setSize(300,300);    
        f.setLayout(null);    
        f.setVisible(true);     
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        // ChangeListener() ispisuje vrijednost koju je korisnik odabrao
        spinner.addChangeListener(new ChangeListener() {  
            public void stateChanged(ChangeEvent e) {  
                label.setText("Odabrana vrijednost : " + ((JSpinner)e.getSource()).getValue());  
            }  
        });  
    }  
}

Prikaz koda iz gornjeg primjera izgledaće ovako: