The
ChoiceBoxKlasa służy do tworzenia formantu, który daje użytkownikowi kilka opcji do wyboru z listy rozwijanej. Użytkownik może wybrać tylko jedną z opcji. Gdy lista rozwijana nie jest wyświetlana, aktualnie wybrana opcja jest jedyną widoczną. Możliwe jest ustawienie
ChoiceBoxobiekt, aby zaakceptować opcję zerową jako prawidłowy wybór.
Oświadczenie importowe
import javafx.scene.control. ChoiceBox;
Konstruktory
The
ChoiceBoxklasa ma dwa konstruktory, jeden dla pustej listy elementów i jeden z danym zestawem elementów:
// Utwórz pusty ChoiceBox
ChoiceBox options = new ChoiceBox ();
// Utwórz ChoiceBox za pomocą obserwowalnej kolekcji list
Cboices ChoiceBox = nowy ChoiceBox (FXCollections.observableArrayList („Apple”, „Banana”, „Orange”, „Peach”, „Pear”, „Strawberry”));
Przydatne metody
Jeśli zdecydujesz się utworzyć pusty
ChoiceBoxelementy można dodać później za pomocą
setItemsmetoda:
options.setItems (FXCollections.observableArrayList („Jabłko”, „Banan”, „Pomarańcza”, „Brzoskwinia”, „Gruszka”, „Truskawka”));
A jeśli chcesz dowiedzieć się, jakie przedmioty są w
ChoiceBoxmożesz użyć
getItemsmetoda:
Opcje list = options.getItems ();
Aby wybrać opcję, która ma być aktualnie wybrana, użyj
ustalić wartośći podaj jedną z opcji:
options.setValue („Pierwszy”);
Aby uzyskać wartość aktualnie wybranej opcji, użyj odpowiedniej
getValuei przypisz ją do Strunowy:
Opcja string = options.getValue (). ToString ();
Obsługa zdarzeń
Aby słuchać wydarzeń dla
ChoiceBoxobiekt,
SelectionModelJest używane. The
ChoiceBoxużywa
SingleSelectionModelklasa, która pozwala wybrać tylko jedną opcję na raz. The
selectedIndexPropertymetoda pozwala nam dodać
ChangeListener. Oznacza to, że ilekroć wybrana opcja zmienia się na inną opcję, nastąpi zdarzenie zmiany. Jak widać z poniższego kodu, nasłuchiwana jest zmiana, a kiedy to nastąpi, poprzednio wybraną opcję i nowo wybraną opcję można określić:
końcowa lista opcji = options.getItems ();
options.getSelectionModel (). selectedIndexProperty (). addListener (new ChangeListener () {
@Override public void zmieniony (ObservableValue ov, Number oldSelected, Number newSelected) {
System.out.println („Old Selected Option:” + options.get (oldSelected.intValue ()));
System.out.println („Nowa wybrana opcja:” + options.get (newSelected.intValue ()));
}
});
Możliwe jest również wyświetlanie lub ukrywanie listy opcji bez konieczności klikania przez użytkownika
ChoiceBoxobiekt za pomocą
pokazaći
ukryćmetody W poniższym kodzie obiekt Button służy do wywołania metody show metody a
ChoiceBoxobiekt, gdy
Przyciskjest kliknięty:
// Użyj panelu stosu do prostego układu elementów sterujących
StackPane root = new StackPane ();
// Utwórz przycisk, aby wyświetlić opcje w ChoiceBox
Przycisk showOptionButton = nowy przycisk („Pokaż opcje”);
root.getChildren (). add (showOptionButton);
root.setAlignment (showOptionButton, Pos. TOP_CENTER);
// Utwórz ChoiceBox z kilkoma opcjami
końcowe wybory ChoiceBox = nowy ChoiceBox (FXCollections.observableArrayList („Jabłko”, „Banan”, „Pomarańcza”, „Brzoskwinia”, „Gruszka”, „Truskawka”));
root.getChildren (). add (opcje);
// Użyj ActionEvent, aby wywołać metodę show ChoiceBox
showOptionButton.setOnAction (new EventHandler () {
@Override public void handle (ActionEvent e) {
options.show ();
}
});
// Ustaw scenę i uruchom scenę ...
Scena sceny = nowa scena (root, 300, 250);
primaryStage.setScene (scena);
primaryStage.show ();
Aby dowiedzieć się o innych kontrolkach JavaFX, zapoznaj się z kontrolkami interfejsu użytkownika JavaFX.