ο
ChoiceBoxclass χρησιμοποιείται για τη δημιουργία ενός ελέγχου που παρουσιάζει τον χρήστη με λίγες επιλογές για να επιλέξει από μια αναπτυσσόμενη λίστα. Ο χρήστης μπορεί να επιλέξει μόνο μία από τις επιλογές. Όταν δεν εμφανίζεται η αναπτυσσόμενη λίστα, η τρέχουσα επιλεγμένη επιλογή είναι η μόνη που είναι ορατή. Είναι δυνατή η ρύθμιση του
ChoiceBoxαντικειμένων να αποδεχθεί μια μηδενική επιλογή ως έγκυρη επιλογή.
Δήλωση εισαγωγής
εισαγωγή javafx.scene.control. ChoiceBox;
Κατασκευαστές
ο
ChoiceBoxη κλάση έχει δύο κατασκευαστές μία για μια κενή λίστα αντικειμένων και μία για ένα συγκεκριμένο σύνολο αντικειμένων:
// Δημιουργήστε ένα κενό πλαίσιο επιλογής
Επιλογές ChoiceBox = new ChoiceBox ();
// Δημιουργήστε ένα ChoiceBox χρησιμοποιώντας μια συλλογή παρατηρήσιμων λιστών
ChoiceBox cboices = νέο κουτί επιλογής (FXCollections.observableArrayList ("Apple", "Μπανάνα", "Πορτοκάλι", "Ροδάκινο", "Αχλάδι", "Φράουλα")).
Χρήσιμες μέθοδοι
Αν επιλέξετε να δημιουργήσετε ένα κενό
ChoiceBoxτα στοιχεία μπορούν να προστεθούν αργότερα χρησιμοποιώντας το
setItemsμέθοδος:
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.