[CODE lang="java" title="Test-Programm zum datePicker"]package app;
import java.time.LocalDate;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class App extends Application {
@Override
public void start(Stage stage) {
Text text3 = new Text("Datum");
DatePicker datePicker = new DatePicker();
Button button1 = new Button("Test");
GridPane gridPane = new GridPane();
gridPane.setMinSize(400, 200);
gridPane.setPadding(new Insets(10, 10, 10, 10));
gridPane.setVgap(5);
gridPane.setHgap(5);
gridPane.setAlignment(Pos.CENTER);
gridPane.add(text3, 0, 2);
gridPane.add(datePicker, 1, 2);
gridPane.add(button1, 0, 3);
gridPane.setStyle("-fx-background-color: BEIGE;");
Scene scene = new Scene(gridPane);
stage.setTitle("DatePicker Example ");
stage.setScene(scene);
stage.show();
button1.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
LocalDate ld = datePicker.getValue();
System.out.printf("Datum: %s %n", ld);
}
});
}
public static void main(String[] args) {
launch();
}
}[/CODE]
Bei der manuellen Eingabe eines Datums wird seit openJX 17.0.0.1 erst mit der Enter Taste das Datum angenommen. Wird das Datum eingetippt und anschließend gleich der Button gedrückt, so ist das Datum entweder null oder es enthält den vorherigen Wert.
[CODE lang="java" title="Ausschnitt aus der POM.XML"]<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17.0.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17.0.0.1</version>
</dependency>
</dependencies>[/CODE]