2016-08-03 4 views
0

JavaFXのDatePickerから日付を選択したときにメソッドを実行するコードを記述しました。しかし、私のイベントコードは2回目の日付選択で実行され、なぜこのようなことが起こるのか分かりません。 私のコードは次のようである:あなたはおそらく、FXMLファイル内onActionイベントのハンドラとしてhandleDateSelectEvent()を使用している2回目の日付選択でJavaFX Date Selectイベントが機能するのはなぜですか?

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

。ハンドラは、イベントハンドラを登録するのではなく、直接ハンドリングコードを含める必要があります。

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

あなたがupvoteできないなら、少なくとも答えを受け入れてください。 – DVarga

+0

ミッションが完了しました:) –

関連する問題