problème de conversion de dates
Bonjour à tous !
J'ai un petit problème avec les dates...
J'ai un programme qui se connecte et récupère des dates via JDBC (elles s'affichent au format aaaa-mm-jj... Je préférerais jj/mm/aaaa mais ça viendra après).
Je veux pouvoir aussi créer un objet dans lequel j'utilise les date. J'ai donc une fenêtre qui s'ouvre, avec entre autre un JFormattedTextField que j'ai fait pour les dates :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package modele;
import javax.swing.*;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
public class DateTextField extends JFormattedTextField {
public DateTextField() {
super(new SimpleDateFormat("dd/MM/yyyy"));
}
public DateTextField(LocalDate d) {
super(new SimpleDateFormat("dd/MM/yyyy"));
this.setValue(d);
}
public LocalDate getDateValue() {
return (LocalDate)this.getValue();
}
} |
Or, quand je valide le formulaire pour créer l'objet, j'obtiens :
Code:
1 2 3 4 5 6
| Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.base/java.util.Date cannot be cast to java.base/java.time.LocalDate
at modele.DateTextField.getDateValue(DateTextField.java:16)
at vue.PopupOperation.okButton(PopupOperation.java:111)
at controleur.OkListener.actionPerformed(OkListener.java:16)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
... |
Je crois comprendre que c'est le DateTextField et en particulier la méthode getDateValue() qui pose problème.
Quand je modifie en
Code:
1 2 3
| public LocalDate getDateValue() {
return ((Date)this.getValue()).toLocalDate();
} |
J'ai cette fois-ci l'erreur
Code:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.base/java.util.Date cannot be cast to java.sql/java.sql.Date
Comment faire pour que mon TextField renvoie une date ?
Merci d'avance de vos éclairages :)