JSpinner | Java Swing
JSpinner fait partie du package javax.swing. JSpinner contient une seule ligne d’entrée qui peut être un nombre ou un objet d’une séquence ordonnée. L’utilisateur peut saisir manuellement des données dans le champ de texte du spinner. Le spinner est parfois préféré car il n’a pas besoin d’une liste déroulante. Spinners contient une flèche vers le haut et une flèche vers le bas pour afficher l’élément précédent et l’élément suivant lorsqu’il est appuyé.
Les constructeurs de la classe JSpinner sont:
JSpinner() | Crée un spinner vide avec une valeur initiale définie sur zéro et aucune contrainte. |
JSpinner(SpinnerModel model) | Crée un spinner avec un modèle de spinner spécifié passé en argument. |
Les méthodes couramment utilisées sont:
- setValue(Object v): Définit la valeur du spinner sur l’objet passé en argument.
- getValue(): Renvoie la valeur actuelle du spinner.
- getPreviousValue(): Retourne la valeur précédente du spinner.
- getNextValue(): Retourne la prochaine valeur du spinner.
- SpinnerListModel(List l): Crée un modèle spinner avec des éléments de la liste l. Ce modèle de spinner peut être utilisé pour définir comme modèle de spinner.
- SpinnerNumberModel(int value, int max, int min, int step): Renvoie un modèle de spinner dont la valeur initiale est définie sur value, avec une valeur minimale et maximale, et une valeur de pas définie.
Exemple:
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, //valeur initiale 0, //valeur minimum 20, //valeur maximum 1 //pas ); 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); //lorsque la flèche haut ou la flèche bas est appuyé sp.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { label.setText("Valeur : " + ((JSpinner)e.getSource()).getValue()); } }); } }
Sortie: