2016-08-03 16 views
0

我编写了一个代码,用于在从JavaFX中的DatePicker中选择日期时运行方法。但我的事件代码运行在第二次选择日期,我不明白为什么会发生这种情况。 我的代码是这样的:为什么JavaFX日期选择事件在第二个日期选择上起作用?

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

请将此扩展为[MCVE]。 'handleDateSelectEvent()'从哪里调用? –

回答

1

你可能会使用handleDateSelectEvent()作为FXML文件中的onAction事件的处理程序。处理程序应直接包含处理代码,而不是注册事件处理程序:

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

非常感谢您的回答。很高兴我有你,而不是自私和高尚的人:) 我想签署你的答案是有用的,但一些高尚的人减少了我的观点。 –

+0

如果您无法注册,请至少接受答案。 – DVarga

+0

任务完成:) –

相关问题