Le Tutoriel de JavaFX DatePicker
1. JavaFX DatePicker
// Setting a particular date value in the class constructor
checkInDatePicker = new DatePicker(LocalDate.of(1998, 10, 8));
// Setting a particular date value by using the setValue method
checkInDatePicker.setValue(LocalDate.of(1998, 10, 8));
// Setting the minimum date available in the calendar
checkInDatePicker.setValue(LocalDate.MIN);
// Setting the maximum date available in the calendar
checkInDatePicker.setValue(LocalDate.MAX);
// Setting the current date
checkInDatePicker.setValue(LocalDate.now());
setShowWeekNumber
2. Exemple de DatePicker
DatePickerDemo.java
package org.o7planning.javafx.datapicker;
import java.time.LocalDate;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
public class DatePickerDemo extends Application {
@Override
public void start(Stage stage) {
DatePicker datePicker = new DatePicker();
datePicker.setValue(LocalDate.of(2016, 7, 25));
datePicker.setShowWeekNumbers(true);
FlowPane root = new FlowPane();
root.getChildren().add(datePicker);
root.setPadding(new Insets(10));
stage.setTitle("DatePicker (o7planning.org)");
Scene scene = new Scene(root, 300, 200);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
Exécutez l'exemple :
3. Personnaliser DatePicker
Par défaut, les date affichées sur le champ Date (Date Field) est formaté en fonction de paramètre local et en fonction de norme ISO. Cela signifie que l'affichage de la date suivra la configuration sur l'ordinateur qui exécute votre application.
Sur le code Java, vous pouvez personnaliser le format de 'Date Field' via la méthode setConverter (..) et vous pouvez utiliser la méthode setConverter (null) si vous voulez revenir à l'état par défaut.
L'exemple suivant personnalise l'affichage sur "Date Field" sous le format "dd-MM-yyyy" :
DatePickerConverterDemo.java
package org.o7planning.javafx.datapicker;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
import javafx.util.StringConverter;
public class DatePickerConverterDemo extends Application {
@Override
public void start(Stage stage) {
DatePicker datePicker = new DatePicker();
datePicker.setValue(LocalDate.of(2016, 7, 25));
datePicker.setShowWeekNumbers(true);
// Converter
StringConverter<LocalDate> converter = new StringConverter<LocalDate>() {
DateTimeFormatter dateFormatter =
DateTimeFormatter.ofPattern("dd-MM-yyyy");
@Override
public String toString(LocalDate date) {
if (date != null) {
return dateFormatter.format(date);
} else {
return "";
}
}
@Override
public LocalDate fromString(String string) {
if (string != null && !string.isEmpty()) {
return LocalDate.parse(string, dateFormatter);
} else {
return null;
}
}
};
datePicker.setConverter(converter);
datePicker.setPromptText("dd-MM-yyyy");
FlowPane root = new FlowPane();
root.getChildren().add(datePicker);
root.setPadding(new Insets(10));
stage.setTitle("DatePicker (o7planning.org)");
Scene scene = new Scene(root, 300, 200);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
4. Désactiver certains jours
Par défaut, vous pouvez interagir avec tous les jours sur DatePicker. Cependant, vous pouvez personnaliser le DatePicker pour désactiver certains jours, en utilisant les méthodes setDayCellFactory.
L'exemple suivant va désactiver tous les lundi, mardi et mercredi du mois.
DatePickerConverterDemo.java
package org.o7planning.javafx.datapicker;
import java.time.DayOfWeek;
import java.time.LocalDate;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.DateCell;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
import javafx.util.Callback;
public class DatePickerConverterDemo extends Application {
// Factory to create Cell of DatePicker
private Callback<DatePicker, DateCell> getDayCellFactory() {
final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
@Override
public DateCell call(final DatePicker datePicker) {
return new DateCell() {
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
// Disable Monday, Tueday, Wednesday.
if (item.getDayOfWeek() == DayOfWeek.MONDAY //
|| item.getDayOfWeek() == DayOfWeek.TUESDAY //
|| item.getDayOfWeek() == DayOfWeek.WEDNESDAY) {
setDisable(true);
setStyle("-fx-background-color: #ffc0cb;");
}
}
};
}
};
return dayCellFactory;
}
@Override
public void start(Stage stage) {
DatePicker datePicker = new DatePicker();
datePicker.setValue(LocalDate.of(2016, 7, 25));
datePicker.setShowWeekNumbers(true);
// Factory to create Cell of DatePicker
Callback<DatePicker, DateCell> dayCellFactory= this.getDayCellFactory();
datePicker.setDayCellFactory(dayCellFactory);
FlowPane root = new FlowPane();
root.getChildren().add(datePicker);
root.setPadding(new Insets(10));
stage.setTitle("DatePicker (o7planning.org)");
Scene scene = new Scene(root, 300, 200);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
Tutoriels de JavaFX
- Ouvrir une nouvelle fenêtre (Window) dans JavaFX
- Le Tutoriel de JavaFX ChoiceDialog
- Le Tutoriel de JavaFX Alert Dialog
- Le Tutoriel de JavaFX TextInputDialog
- Installer e(fx)clipse pour Eclipse (Outillage JavaFX)
- Installer JavaFX Scene Builder pour Eclipse
- Tutoriel JavaFX pour débutant - Hello JavaFX
- Le Tutoriel de JavaFX FlowPane Layout
- Le Tutoriel de JavaFX TilePane Layout
- Le Tutoriel de JavaFX HBox et VBox Layout
- Le Tutoriel de JavaFX BorderPane Layout
- Le Tutoriel de JavaFX AnchorPane Layout
- Le Tutoriel de JavaFX TitledPane
- Le Tutoriel de JavaFX Accordion
- Le Tutoriel de JavaFX ListView
- Le Tutoriel de JavaFX Group
- Le Tutoriel de JavaFX ComboBox
- Transformations dans JavaFX
- Les effets (effects) dans JavaFX
- Le Tutoriel de JavaFX GridPane Layout
- Le Tutoriel de JavaFX StackPane Layout
- Le Tutoriel de JavaFX ScrollPane
- Le Tutoriel de JavaFX WebView et WebEngine
- Le Tutoriel de JavaFX HTMLEditor
- Le Tutoriel de JavaFX TableView
- Le Tutoriel de JavaFX TreeView
- Le Tutoriel de JavaFX TreeTableView
- Le Tutoriel de JavaFX Menu
- Le Tutoriel de JavaFX ContextMenu
- Le Tutoriel de JavaFX Image et ImageView
- Le Tutoriel de JavaFX Label
- Le Tutoriel de JavaFX Hyperlink
- Le Tutoriel de JavaFX Button
- Le Tutoriel de JavaFX ToggleButton
- Le Tutoriel de JavaFX RadioButton
- Le Tutoriel de JavaFX MenuButton et SplitMenuButton
- Le Tutoriel de JavaFX TextField
- Le Tutoriel de JavaFX PasswordField
- Le Tutoriel de JavaFX TextArea
- Le Tutoriel de JavaFX Slider
- Le Tutoriel de JavaFX Spinner
- Le Tutoriel de JavaFX ProgressBar et ProgressIndicator
- Le Tutoriel de JavaFX ChoiceBox
- Le Tutoriel de JavaFX Tooltip
- Le Tutoriel de JavaFX DatePicker
- Le Tutoriel de JavaFX ColorPicker
- Le Tutoriel de JavaFX FileChooser et DirectoryChooser
- Le Tutoriel de JavaFX PieChart
- Le Tutoriel de JavaFX AreaChart et StackedAreaChart
- Le Tutoriel de JavaFX BarChart et StackedBarChart
- Le Tutoriel de JavaFX Line
- Le Tutoriel de JavaFX Rectangle et Ellipse
Show More