import java.time.LocalDate; 

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.DateCell; 
import javafx.scene.control.DatePicker; 
import javafx.scene.layout.BorderPane; 
import javafx.stage.Stage; 

public class DateCellDisableTest extends Application{ 

@Override 
public void start(Stage primaryStage) throws Exception { 

DatePicker datePicker = new DatePicker(); 

datePicker.setDayCellFactory((cell)->{ 
return new DateCell() { 
@Override 
public void updateItem(final LocalDate item, final boolean empty) { 
super.updateItem(item, empty); 

if (item.isBefore(LocalDate.now())) { 
this.setDisable(true); 
} 
} 
}; 
}); 


BorderPane root = new BorderPane(datePicker); 

Scene scene = new Scene(root, 400, 400); 
primaryStage.setScene(scene); 
primaryStage.show(); 
} 

public static void main(String[] args) { 
Application.launch(args); 
} 

} 