【问题标题】:How do i view decades in javafx DatePicker?我如何在 javafx DatePicker 中查看几十年?
【发布时间】:2017-04-28 10:26:23
【问题描述】:

因此,如果有人出生于 1980 年,并且想通过鼠标输入年龄,则必须单击 37 次年份箭头,这非常可笑。

有没有办法在 javafx 日期选择器中查看几十年,以便用户可以像 1980-1990 这样选择和选择一个日期?

编辑:因为没有人回答这个问题,但为了清楚起见,我只是张贴一张图片

https://ibb.co/exrVgQ

【问题讨论】:

  • 我不确定在现有的日期选择器中是否有办法,但你可以有一个解决方法,有 2 个按钮 - nextDecade 和 prevDecade 并设置日期datepicker 在点击这些按钮时使用calendar.set(int field, int value);,如果这对你有用,我可以用代码作为答案
  • 当然,谢谢。

标签: javafx datepicker


【解决方案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(),可能有解决这个问题的方法,或者更好的方法来解决你的问题,这就是全部我能想到:)

【讨论】:

    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 2021-06-23
    • 2023-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多