o
ChoiceBoxA classe é usada para criar um controle que apresenta ao usuário algumas opções para escolher em uma lista suspensa. O usuário pode escolher apenas uma das opções. Quando a lista suspensa não é exibida, a opção atualmente selecionada é a única visível. É possível definir o
ChoiceBoxobjeto para aceitar uma opção nula como uma opção válida.
Declaração de importação
importar javafx.scene.control. ChoiceBox;
Construtores
o
ChoiceBoxA classe possui dois construtores, um para uma lista vazia de itens e outro para um determinado conjunto de itens:
// Crie uma ChoiceBox vazia
ChoiceBox escolhas = novo ChoiceBox ();
// Crie uma ChoiceBox usando uma coleção de lista observável
ChoiceBox cboices = nova ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Laranja", "Pêssego", "Pêra", "Morango"));
Métodos úteis
Se você optar por criar um espaço vazio
ChoiceBoxitens podem ser adicionados posteriormente usando o
setItemsmétodo:
options.setItems (FXCollections.observableArrayList ("Apple", "Banana", "Laranja", "Pêssego", "Pêra", "Morango"));
E, se você quiser descobrir quais itens estão em um
ChoiceBoxvocê pode usar o
getItemsmétodo:
Opções da lista = options.getItems ();
Para escolher uma opção a ser selecionada no momento, use o
setValuee forneça uma das opções:
options.setValue ("Primeiro");
Para obter o valor da opção atualmente selecionada, use o correspondente
Obter valormétodo e atribuí-lo a um Corda:
Opção de string = options.getValue (). ToString ();
Manipulação de eventos
Para ouvir os eventos de um
ChoiceBoxobjeto, o
SelectionModelé usado. o
ChoiceBoxusa o
SingleSelectionModelclasse que permite que apenas uma opção seja escolhida por vez. o
selectedIndexPropertyO método nos permite adicionar um
ChangeListener. Isso significa que sempre que a opção selecionada for alterada para outra opção, o evento de alteração ocorrerá. Como você pode ver no código abaixo, uma alteração é ouvida e, quando ocorre, a opção selecionada anteriormente e a nova opção selecionada podem ser determinadas:
opções finais da lista = options.getItems ();
options.getSelectionModel (). selectedIndexProperty (). addListener (new ChangeListener () {
@Override public void alterado (ObservableValue ov, Number oldSelected, Number newSelected) {
System.out.println ("Antiga opção selecionada:" + options.get (oldSelected.intValue ()));
System.out.println ("Nova opção selecionada:" + options.get (newSelected.intValue ()));
}
});
Também é possível mostrar ou ocultar a lista de opções sem que o usuário precise clicar no
ChoiceBoxobjeto usando o
mostrare
ocultarmétodos. No código abaixo, um objeto Button é usado para chamar o método show de um
ChoiceBoxobjeto quando o
Botãoé clicado:
// Use uma stackpane para um layout simples dos controles
Raiz do StackPane = novo StackPane ();
// Botão Criar para mostrar as opções no ChoiceBox
Button showOptionButton = new Button ("Mostrar opções");
root.getChildren (). add (showOptionButton);
root.setAlignment (showOptionButton, pos. TOP_CENTER);
// Crie o ChoiceBox com algumas opções
opções finais da ChoiceBox = nova ChoiceBox (FXCollections.observableArrayList ("Apple", "Banana", "Laranja", "Pêssego", "Pêra", "Morango"));
root.getChildren (). add (opções);
// Use o ActionEvent para chamar o método show ChoiceBox
showOptionButton.setOnAction (new EventHandler () {
@ Substituir o identificador de vazio público (ActionEvent e) {
escolhas.show ();
}
});
// Defina a cena e coloque o palco em movimento.
Cena cena = nova cena (raiz, 300, 250);
primaryStage.setScene (scene);
primaryStage.show ();
Para descobrir outros controles JavaFX, consulte JavaFX User Interface Controls.