📜  JavaFX | DatePicker 示例

📅  最后修改于: 2022-05-13 01:54:42.877000             🧑  作者: Mango

JavaFX | DatePicker 示例

DatePicker 是 JavaFX 包的一部分,DatePicker 允许从弹出的日历中选择日期或在日期选择器的文本字段中手动键入文本。

DatePicker 类的构造函数是:

  1. DatePicker() :创建一个默认的 DatePicker 实例,其中设置了一个空日期值。
  2. DatePicker(LocalDate l) :创建一个 DatePicker 实例并将值设置为给定的日期。

常用方法:

methodexplanation
getChronology()Gets the value of the property chronology.
getEditor()returns the text editor of the date picker
isShowWeekNumbers()returns whether the week number is shown or not
setChronology(Chronology v)Sets the value of the property chronology.
setShowWeekNumbers(boolean v)sets the date picker to show week number if true value is passed as argument

下面的程序说明了 DatePicker 类:

  1. 创建日期选择器并将其显示在舞台上的程序:该程序创建一个由名称d指示的日期选择器。 DatePicker 将在场景内创建,而场景又将托管在舞台内。函数setTitle() 用于为舞台提供标题。然后创建一个平铺窗格,调用 addChildren() 方法将按钮附加到场景中。最后调用 show() 方法显示最终结果。
    // Java Program to create a date picker
    // and display it in stage
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.LocalDate;
    public class date_picker_1 extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating date picker");
      
            // create a tile pane
            TilePane r = new TilePane();
      
            // create a date picker
            DatePicker d = new DatePicker();
      
            // add button and label
            r.getChildren().add(d);
      
            // create a scene
            Scene sc = new Scene(r, 200, 200);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }
    

    输出:

  2. 创建日期选择器并创建标签以显示日期的程序:该程序创建一个由名称d指示的 DatePicker。日期选择器将在场景内创建,而场景又将托管在舞台内。我们将创建一个标签来显示选择的日期。函数setTitle() 用于为舞台提供标题。然后创建一个平铺窗格,调用 addChildren() 方法将按钮和标签附加到场景中。最后,调用 show() 方法来显示最终结果。我们将创建一个事件处理程序来处理日期选择器事件。事件处理程序将使用 setOnAction()函数添加到按钮。 setShowWeekNumbers() 将设置日期选择器以显示相应周的周数。
    // Java Program to create a date picker
    // and create a label to show the date
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.*;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.control.*;
    import javafx.stage.Stage;
    import javafx.scene.control.Alert.AlertType;
    import java.time.*;
    import java.time.chrono.*;
    public class date_picker_2 extends Application {
      
        // launch the application
        public void start(Stage s)
        {
            // set title for the stage
            s.setTitle("creating date picker");
      
            // create a tile pane
            TilePane r = new TilePane();
      
            // label to show the date
            Label l = new Label("no date selected");
      
            // create a date picker
            DatePicker d = new DatePicker();
      
            // action event
            EventHandler event = new EventHandler() {
                public void handle(ActionEvent e)
                {
                    // get the date picker value
                    LocalDate i = d.getValue();
      
                    // get the selected date
                    l.setText("Date :" + i);
                }
            };
      
            // show week numbers
            d.setShowWeekNumbers(true);
      
            // when datePicker is pressed
            d.setOnAction(event);
      
            // add button and label
            r.getChildren().add(d);
            r.getChildren().add(l);
      
            // create a scene
            Scene sc = new Scene(r, 200, 200);
      
            // set the scene
            s.setScene(sc);
      
            s.show();
        }
      
        public static void main(String args[])
        {
            // launch the application
            launch(args);
        }
    }
    

    输出:

    注意:以上程序可能无法在在线 IDE 中运行,请使用离线 IDE。

    参考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/DatePicker.html