Ho inserito un ChoiceBox all'interno di un fxml con JavaFX Scene Builder.Quale ChoiceBox-Event scegliere?
FXML dispone di un controller assegnato.
La mia domanda è: quale evento devo registrare se voglio sapere dei valori modificati?
onInputMethodTextChanged="#languageSelectionModified"
questo non funziona con il seguente codice
public void languageSelectionModified(Event event) {
ChoiceBox<String> box = (ChoiceBox<String>) event.getSource();
System.out.println(box.getValue());
}
e questo funziona solo per il clic iniziale (cioè l'apertura della lista, non quando si seleziona una voce):
onMouseClicked="#languageSelectionModified"
Sebbene Mouse-Events non sia mai una buona scelta a causa di situazioni in cui il touch o la tastiera è il metodo di input, è comunque dimostrabile che è possibile raggiungere System.out.
devo assolutamente idea di dove queste cose sono documentati (nella Java API di default non lo sono)
Grazie per la tua risposta! Funziona bene Quindi non c'è modo di farlo attraverso gli eventi 'normali' FXML? Se tu potessi dirmi dove avrei potuto cercare gli eventi esistenti (e definibili) per i file FXML, segnalo come risposta alla mia domanda. – Gundon
No, non è possibile cercare eventi per questo in FXML utilizzando JavaFX 2.0 a 2.2. – jewelsea
L'evento del modello di selezione si innesca anche quando il valore della scelta è impostato dal codice (nel mio caso, ho una scelta che popola una forma di child choiceboxes) e vorrei che ci fosse un modo pulito per distinguere "cambiamenti guidati dall'utente" da quelli guidati da codice. – Mikeb