JavaFX 8中的Datepicker

Pet*_*zov 5 javafx javafx-2 javafx-8

在没有使用第三方解决方案的情况下,我可以使用默认JavaFX 8软件包中的日期选择器和时间选择器的实现吗?

jew*_*sea 8

日期选择器

是的,Java 8有一个DatePicker:

日期选择器

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.stage.Stage;

import java.time.LocalDate;

public class PickerDemo extends Application {
    @Override public void start(Stage stage) {
        final DatePicker datePicker = new DatePicker(LocalDate.now());
        datePicker.setOnAction(event -> {
            LocalDate date = datePicker.getValue();
            System.out.println("Selected date: " + date);
        });

        stage.setScene(
            new Scene(datePicker)
        );
        stage.show();
    }
    public static void main(String[] args) { launch(args); }
}
Run Code Online (Sandbox Code Playgroud)

TimePicker

不,Java 8没有TimePicker.

jfxtras中有一个TimePicker (源代码在这里).

鉴于Java 8已经有一个DatePicker,添加一个TimePicker可能是一个合适的功能请求,你可以做.


小智 5

如果您不想在弹出窗口中显示日历。这是使用内部CalendarPickerContent类的解决方案。

DatePickerSkin skin = new DatePickerSkin(new DatePicker());
Node calendarControl = skin.getPopupContent();
Run Code Online (Sandbox Code Playgroud)