JSpinner – Java Swing – Eksempel
I denne tutorial skal vi se et eksempel på JSpinner i Java Swing. JSpinner er en del af javax.swing-pakken. JSpinner indeholder en enkelt linje input, der kan være et tal eller et objekt i en ordnet rækkefølge. Brugeren kan manuelt indtaste data i spinnerens tekstfelt. Spinneren foretrækkes nogle gange, fordi den ikke behøver en rulleliste. Spinnere indeholder op/ned-pile for at vise det forrige og næste element, når der trykkes på dem.
JSpinner-konstruktørklasse:
JSpinner Constructors | Beskrivelse |
---|---|
JSpinner() | Opretter en tom spinner med en startværdi sat til nul og ingen begrænsninger. |
JSpinner(SpinnerModel model) | Opretter en spinner med en specificeret spinner-skabelon sendt som argument. |
Almindelig anvendte metoder:
- setValue(Object v) :Definerer værdien af spinneren på objektet, der sendes i argument.
- getValue() :Returnerer den aktuelle værdi af spinneren.
- getPreviousValue() :Returnerer den forrige værdi af spinneren.
- getNextValue() :Returnerer den næste værdi af spinneren.
- SpinnerListModel(Liste l) :Opretter en spinnermodel med elementer fra listen l. Denne spinnermodel kan bruges til at definere som en spinnermodel.
- SpinnerNumberModel(int val, int max, int min, int step) :Returnerer et spinnermønster, hvis startværdi er indstillet til "val", med en minimums- og maksimumværdi og en defineret trinværdi.
Eksempel på JSpinner i Java Swing:
import javax.swing.*; import javax.swing.event.*; public class Main { public static void main(String[] args) { JFrame frame = new JFrame(); final JLabel label = new JLabel(); label.setHorizontalAlignment(JLabel.CENTER); label.setSize(250,100); SpinnerModel model = new SpinnerNumberModel( 2, //initial value 0, //minimum value 20, //maximum value 1 //step ); JSpinner sp = new JSpinner(model); sp.setBounds(100,100,45,30); frame.add(sp); frame.add(label); frame.setSize(250,250); frame.setLayout(null); frame.setVisible(true); //when the up/down arrows is pressed sp.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { label.setText("Value : " + ((JSpinner)e.getSource()).getValue()); } }); } }
Output: