因此,如果某人出生于1980年并且他们想通过鼠标进入他们的年龄,他们将不得不点击年份箭头37次,这是非常荒谬的。
有没有办法查看javafx datepicker中的几十年,以便用户可以选择和选择1980-1990并选择日期?
编辑:由于没有人回答这个问题,我只是为了清晰起见而张贴图片
答案 0 :(得分:1)
你可以做这样的事情
public class JavaFxTest extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Button prevDecade=new Button("Previous Decade");
Button nextDecade=new Button("Next Decade");
DatePicker datePicker=new DatePicker();
Calendar calendar = Calendar.getInstance();
datePicker.setValue(LocalDate.of(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)));
prevDecade.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
LocalDate value = datePicker.getValue();
datePicker.setValue(LocalDate.of(value.getYear()-10, value.getMonth(), value.getDayOfMonth()));
datePicker.show();
}
});
nextDecade.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
datePicker.show();
LocalDate value = datePicker.getValue();
datePicker.setValue(LocalDate.of(value.getYear()+10, value.getMonth(), value.getDayOfMonth()));
}
});
HBox hBox=new HBox();
hBox.getChildren().addAll(datePicker, prevDecade, nextDecade);
primaryStage.setScene(new Scene(hBox,500,300));
primaryStage.show();
}
}
但唯一的问题是,当点击按钮时,datepicker会隐藏日历,所以我们必须明确地执行datepicker.show()
,这可能是解决这个问题的一种方法,或者是解决问题的更好方法,是我能想到的全部:)