JavaFX DatePicker
时间:2020-01-09 10:36:36 来源:igfitidea点击:
JavaFX DatePicker控件使用户可以输入日期或者从类似向导的弹出对话框中选择日期。弹出对话框仅显示有效日期,因此这是用户选择日期并确保在日期选择器文本字段中输入的日期和日期格式均有效的简便方法。 JavaFX DatePicker由类javafx.scene.control.DatePicker表示。
" DatePicker"是" ComboBox"类的子类,因此与该类具有一些相似之处。
创建一个DatePicker
我们可以通过" DatePicker"类的构造函数创建DatePicker控件。这是一个JavaFXDatePicker实例化示例:
DatePicker datePicker = new DatePicker();
将DatePicker添加到场景图
为了使" DatePicker"可见,必须将其添加到JavaFX场景图中。这意味着将其添加到"场景"对象或者添加到"场景"对象的布局组件中。
这是一个示例,显示了如何向场景图添加JavaFXDatePicker:
package com.Hyman.javafx.controls;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class DatePickerExperiments extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Button Experiment 1");
DatePicker datePicker = new DatePicker();
HBox hbox = new HBox(datePicker);
Scene scene = new Scene(hbox, 200, 100);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
运行此示例所产生的应用程序将类似于以下内容:
阅读所选日期
可以使用其" getValue()"方法读取在" DatePicker"中选择的日期。这是从DatePicker中读取所选日期的示例:
LocalDate value = datePicker.getValue();
" getValue()"返回一个LocalDate对象,该对象表示在" DatePicker"中选择的日期。
这是一个完整的示例,其中添加了一个按钮,当单击按钮时,该按钮可提取" DatePicker"中的选定日期:
package com.Hyman.javafx.controls;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import java.time.LocalDate;
public class DatePickerExperiments extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("DatePicker Experiment 1");
DatePicker datePicker = new DatePicker();
Button button = new Button("Read Date");
button.setOnAction(action -> {
LocalDate value = datePicker.getValue();
});
HBox hbox = new HBox(datePicker);
Scene scene = new Scene(hbox, 300, 240);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}

