Spinner JavaFX

Spinner JavaFX: C’est un champs de texte sur une seule ligne qui nous permet de choisir un nombre ou une  valeur dans une liste de valeur.

Utilisation d’un Spinner

Pour utiliser ce control Spinner JavaFX, il suffit de l’instancier c’est-a-dire créer un nouvel objet de la classe Spinner comme ceci:

Vous pouvez spécifier le type de données que va contenir votre Spinner.

Spinner<Integer> spinner = new Spinner<>();

Nous avons créer un Spinner vide qui ne contient pas de données.

définir les valeur Spinner JavaFX

Pour que notre Spinner affiche les données il faut passer par la classe SpinnerValueFactory. Cette classe va nous permet de définir des valeur pour notre Spinner.

Exemple

        SpinnerValueFactory valueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1,5,1);

Nous avons créer une séquence de valeur pour notre Spinner. les deux premiers paramètre corresponds a l’intervalle de valeur que doit afficher le Spinner et le dernier correspond a la valeur initiale.

Associer de valeur a un Spinner

Pour associer la séquence de valeurs a notre Spinner il suffit d’utiliser la méthode setValueFactory sur l’objet Spinner en en lui passant notre séquence de valeur comme ceci:

Spinner<Integer> spinner = new Spinner<>();
SpinnerValueFactory valueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1,5,1);
spinner.setValueFactory(valueFactory);

Voici un exemple de code qui affiche un Spinner dans une scène de graphe après son exécution.

import javafx.application.Application; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.control.Spinner; 
import javafx.scene.control.SpinnerValueFactory; 
import javafx.scene.layout.FlowPane; 
import javafx.stage.Stage; 
public class ExampleSpinner extends Application { 
    @Override 
    public void start(Stage primaryStage) throws Exception { 
        Label label = new Label("Selectionner une valeur"); 
        Spinner<Integer> spinner = new Spinner<>(); 
        SpinnerValueFactory valueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1,5,1); 
        spinner.setValueFactory(valueFactory); 
        FlowPane root = new FlowPane(); 
        root.setHgap(10); 
        root.setVgap(10); 
        root.setPadding(new Insets(10)); 
        root.getChildren().addAll(label,spinner); 
        Scene scene = new Scene(root, 600, 300); 
        primaryStage.setTitle("Spinner JavaFX"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
    public static void main(String[] args) { 
        launch(args); 
    } 
}
Spinner JavaFX
Exemple Spinner JavaFX

Vous pouvez changer l’emplacement et la direction des touches fléchées de votre Spinner. Voici un exemple dans lequel vous allez apprendre a change l’emplacement et la directions de flèches.

import javafx.application.Application; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.Spinner; 
import javafx.scene.layout.FlowPane; 
import javafx.stage.Stage; 
public class SpinnerStyle extends Application { 
    @Override 
    public void start(Stage stage) { 
        String[] style = new String[] { "", 
                Spinner.STYLE_CLASS_ARROWS_ON_RIGHT_HORIZONTAL, 
                Spinner.STYLE_CLASS_ARROWS_ON_LEFT_VERTICAL, 
                Spinner.STYLE_CLASS_ARROWS_ON_LEFT_HORIZONTAL, 
                Spinner.STYLE_CLASS_SPLIT_ARROWS_VERTICAL, 
                Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL 
        }; 
        FlowPane root = new FlowPane(); 
        root.setHgap(10); 
        root.setVgap(10); 
        root.setPadding(new Insets(10)); 
        for (String styleClass : style) { 
            Spinner<Integer> spinner = new Spinner<Integer>(5, 30, 5); 
            spinner.getStyleClass().add(styleClass); 
            root.getChildren().add(spinner); 
        } 
        Scene scene = new Scene(root, 600, 300); 
        stage.setTitle("Spinner JavaFX"); 
        stage.setScene(scene); 
        stage.show(); 
    } 
    public static void main(String[] args) { 
        Application.launch(args); 
    } 
}
Spinner JavaFX
Aperçue

Vous pouvez utiliser utiliser une liste Observable pour Dans un Spinner. Voici un exemple de code:

import javafx.application.Application; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.control.Spinner; 
import javafx.scene.control.SpinnerValueFactory; 
import javafx.scene.layout.FlowPane; 
import javafx.stage.Stage; 
public class ExampleSpinner1 extends Application { 
    @Override 
    public void start(Stage primaryStage) throws Exception { 
        Label label = new Label("Selectionner Un Jour"); 
        ObservableList <String> list = FXCollections.observableArrayList( 
                "Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimance" 
        ); 
        Spinner<String> spinner = new Spinner<>(); 
        SpinnerValueFactory valueFactory = new SpinnerValueFactory.ListSpinnerValueFactory<String>(list); 
        spinner.setValueFactory(valueFactory); 
        FlowPane root = new FlowPane(); 
        root.setHgap(10); 
        root.setVgap(10); 
        root.setPadding(new Insets(10)); 
        root.getChildren().addAll(label,spinner); 
        Scene scene = new Scene(root, 600, 300); 
        primaryStage.setTitle("Spinner JavaFX"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Spinner JavaFX

Laisser un commentaire