2016-08-03 11 views
0

Ich habe einen Code geschrieben, um eine Methode auszuführen, wenn ein Datum aus DatePicker in JavaFX ausgewählt wurde. Aber mein Ereigniscode wird bei der zweiten Datumsauswahl ausgeführt, und ich verstehe nicht, warum dies auftritt. Mein Code ist wie folgt:Warum JavaFX Date Select Event bei der zweiten Datumsauswahl funktioniert?

public void handleDateSelectEvent(){ 
    appointmentDay.setOnAction(event -> { 
     System.out.println("Tarih Seçildi:"+appointmentDay.getValue()); 
     java.util.Date selectedDate= java.sql.Date.valueOf(appointmentDay.getValue()); 
     List<String> avaliableClocks = new ArrayList<String>(); 
     for (AppointmentClocks ac : findAppointmentClocks(selectedDate)){ 
      avaliableClocks.add(ac.getClock()); 
     } 

     ObservableList obClocks = FXCollections.observableList(avaliableClocks); 
     appointmentClock.getItems().clear(); 
     appointmentClock.setItems(obClocks); 
    }); 
} 
+0

Bitte erweitern Sie dies zu einem [MCVE]. Woher wird 'handleDateSelectEvent()' aufgerufen? –

Antwort

1

Du bist wahrscheinlich handleDateSelectEvent() als Handler des onAction Ereignis innerhalb einer fxml-Datei. Der Handler sollte den Behandlungscode direkt enthalten, anstatt den Event-Handler zu registrieren:

public void handleDateSelectEvent(){ 
    System.out.println("Tarih Seçildi:"+appointmentDay.getValue()); 
    java.util.Date selectedDate= java.sql.Date.valueOf(appointmentDay.getValue()); 
    List<String> avaliableClocks = new ArrayList<String>(); 
    for (AppointmentClocks ac : findAppointmentClocks(selectedDate)){ 
     avaliableClocks.add(ac.getClock()); 
    } 

    ObservableList obClocks = FXCollections.observableList(avaliableClocks); 
    appointmentClock.getItems().clear(); 
    appointmentClock.setItems(obClocks); 
} 
+1

Vielen Dank für Ihre Antwort. So froh, dass ich dich anstelle von egoistischen und highbrow Leuten habe :) Ich wollte deine Antwort als nützlich unterzeichnen, aber einige highbrow Leute verringerten meinen Punkt. –

+0

Wenn Sie nicht upvote dann bitte zumindest die Antwort akzeptieren. – DVarga

+0

Mission abgeschlossen :) –