Έλεγχοι JavaFX: Επισκόπηση ChoiceBox

ο

ChoiceBox
class χρησιμοποιείται για τη δημιουργία ενός ελέγχου που παρουσιάζει τον χρήστη με λίγες επιλογές για να επιλέξει από μια αναπτυσσόμενη λίστα. Ο χρήστης μπορεί να επιλέξει μόνο μία από τις επιλογές. Όταν δεν εμφανίζεται η αναπτυσσόμενη λίστα, η τρέχουσα επιλεγμένη επιλογή είναι η μόνη που είναι ορατή. Είναι δυνατή η ρύθμιση του
ChoiceBox
αντικειμένων να αποδεχθεί μια μηδενική επιλογή ως έγκυρη επιλογή.

Δήλωση εισαγωγής

εισαγωγή javafx.scene.control. ChoiceBox;

Κατασκευαστές

ο

ChoiceBox
η κλάση έχει δύο κατασκευαστές μία για μια κενή λίστα αντικειμένων και μία για ένα συγκεκριμένο σύνολο αντικειμένων:
// Δημιουργήστε ένα κενό πλαίσιο επιλογής
Επιλογές ChoiceBox = new ChoiceBox ();
// Δημιουργήστε ένα ChoiceBox χρησιμοποιώντας μια συλλογή παρατηρήσιμων λιστών
ChoiceBox cboices = νέο κουτί επιλογής (FXCollections.observableArrayList ("Apple", "Μπανάνα", "Πορτοκάλι", "Ροδάκινο", "Αχλάδι", "Φράουλα")).

Χρήσιμες μέθοδοι

Αν επιλέξετε να δημιουργήσετε ένα κενό

ChoiceBox
τα στοιχεία μπορούν να προστεθούν αργότερα χρησιμοποιώντας το
setItems
μέθοδος:
instagram viewer
choices.setItems (FXCollections.observableArrayList ("Apple", "Μπανάνα", "Πορτοκάλι", "Ροδάκινο", "Αχλάδι", "Φράουλα")).

Και, αν θέλετε να μάθετε ποια στοιχεία βρίσκονται σε ένα

ChoiceBox
μπορείτε να χρησιμοποιήσετε το
getItems
μέθοδος:
Επιλογές λίστας = choices.getItems ();

Για να επιλέξετε μια επιλογή που θα επιλεγεί, χρησιμοποιήστε το

setValue
και δώστε τη μία από τις επιλογές:
επιλογές.setValue ("Πρώτη");

Για να λάβετε την τιμή της επιλογής που έχετε επιλέξει, χρησιμοποιήστε την αντίστοιχη

getValue
και να την εκχωρήσετε σε ένα Σειρά:
Επιλογέας συμβολοσειράς = choices.getValue (). ToString ();

Χειρισμός συμβάντων

Για να ακούσετε εκδηλώσεις για ένα

ChoiceBox
το αντικείμενο, το
ΕπιλογήModel
χρησιμοποιείται. ο
ChoiceBox
χρησιμοποιεί το
SingleSelectionModel
η οποία επιτρέπει μόνο μία επιλογή να επιλέγεται κάθε φορά. ο
selectedIndexProperty
η μέθοδος μας επιτρέπει να προσθέσουμε ένα
ChangeListener
. Αυτό σημαίνει ότι κάθε φορά που η επιλεγμένη επιλογή αλλάζει σε άλλη επιλογή, θα συμβεί το συμβάν αλλαγής. Όπως μπορείτε να δείτε από τον παρακάτω κώδικα, ακούγεται μια αλλαγή και όταν εμφανίζεται η επιλογή που είχε προηγουμένως επιλεγεί και η νέα επιλογή που επιλέξατε μπορεί να καθοριστεί:
τελικές επιλογές λίστας = choices.getItems ();
ΕπιλεγμένοIndexProperty (). addListener (νέο ChangeListener () {
@Override public void άλλαξε (ObsbleValue ov, Αριθμός oldSelected, Αριθμός newSelected) {
System.out.println ("Παλαιά επιλεγμένη επιλογή:" + options.get (oldSelected.intValue ()));
System.out.println ("Νέα επιλεγμένη επιλογή:" + options.get (newSelected.intValue ()));
}
});

Είναι επίσης δυνατή η εμφάνιση ή η απόκρυψη της λίστας επιλογών χωρίς ο χρήστης να χρειαστεί να κάνει κλικ στο

ChoiceBox
αντικείμενο χρησιμοποιώντας το
προβολή
και
κρύβω
μεθόδων. Στον παρακάτω κώδικα ένα αντικείμενο κουμπιού χρησιμοποιείται για να καλέσει τη μέθοδο εμφάνισης του a
ChoiceBox
αντικείμενο όταν το
Κουμπί
κάντε κλικ:
// Χρησιμοποιήστε μια στοίβα για μια απλή διάταξη των χειριστηρίων
StackPane ρίζα = νέα StackPane ();
// Δημιουργία κουμπιού για να εμφανιστούν οι επιλογές στο ChoiceBox
Κουμπί showOptionButton = νέο κουμπί ("Επιλογές εμφάνισης");
root.getChildren () προσθέστε (showOptionButton);
root.setAlignment (showOptionButton, Pos. TOP_CENTER);
// Δημιουργήστε το ChoiceBox με μερικές επιλογές
τελικές επιλογές ChoiceBox = new ChoiceBox (FXCollections.observableArrayList ("Apple", "Μπανάνα", "Πορτοκάλι", "Ροδάκινο", "Αχλάδι", "Φράουλα")).
root.getChildren () προσθέστε (επιλογές);
// Χρησιμοποιήστε το ActionEvent για να καλέσετε τη μέθοδο εμφάνισης του ChoiceBox
showOptionButton.setOnAction (νέο EventHandler () {
@Εξέλιξη δημόσιας κενής θέσης (ActionEvent e) {
επιλογές.show ();
}
});
// Ορίστε τη σκηνή και τοποθετήστε την σκηνή σε κίνηση.
Σκηνή σκηνής = νέα σκηνή (ρίζα, 300, 250);
primaryStage.setScene (σκηνή);
primaryStage.show ();

Για να μάθετε σχετικά με άλλα στοιχεία ελέγχου JavaFX, ρίξτε μια ματιά στους ελέγχους διεπαφής χρήστη JavaFX.