Saltar al contenido

eventos de javafx choicebox

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *