Solución:
Agregue un ChangeListener al modelo de selección de ChoiceBox y selectedIndexProperty:
final ChoiceBox<String> box = new ChoiceBox<String>();
box.getItems().add("1");
box.getItems().add("2");
box.getItems().add("3");
box.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observableValue, Number number, Number number2) {
System.out.println(box.getItems().get((Integer) number2));
}
});
Sin embargo, Sebastian lo explicó lo suficientemente bien, solo en caso de que solo le interese el valor real seleccionado en el cuadro de elección y no le importa mucho el índice, entonces puede usar selectedItemProperty en lugar de selectedIndexProperty.
También ChangeListener es una interfaz funcional, puedes usar lambda aquí cuando vayas con Java 8. Solo modifiqué un poco el ejemplo de Sebastian. El newValue es el valor recién seleccionado.
ChoiceBox<String> box = new ChoiceBox<String>();
box.getItems().add("1");
box.getItems().add("2");
box.getItems().add("3");
box.getSelectionModel()
.selectedItemProperty()
.addListener( (ObservableValue<? extends String> observable, String oldValue, String newValue) -> System.out.println(newValue) );
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)