Editer un champ date à partie d'une jTable

Résolu
veterant_mbk
Messages postés
8
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
22 mars 2008
- 20 mars 2008 à 12:38
uhrand
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
- 22 mars 2008 à 20:02
bonjour,
j'ai généré un programme par netbeans (j2se) utilisant une jTable, il y a un champ date que je n'arrive pas à éditer?
dans le textField correspondant je n'ai trouvé aucune propriété de format

le veterant

7 réponses

uhrand
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
20 mars 2008 à 16:54
Tu peus également mettre ton code dans le mode "Design" de NetBeans: dans la fenêtre « table [JTable] Properties » tu clique sur le Bouton  « Code » et ensuite sur « Post-Creation Code ». La tu peus coller p.ex. ceci :

table.setModel(new DefaultTableModel(
        new Object [][] {
            {new Date(), new Date(), "demo1"},
            {new Date(), new Date(), "demo2"},
            {new Date(), new Date(), "demo3"},
            {null, null, "demo4"}
},
        new String [] {"Date 1", "Date 2", "Demo"}
) {
    Class[] types = new Class [] {
        Date.class, Date.class, String.class
    };
    public Class getColumnClass(final int columnIndex) {
        return types [columnIndex];
    }
});

Après tu clique sur "Properties" | "model" | "Reset to default"
3
uhrand
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
21 mars 2008 à 17:18
As-tu bien mis la colonne date sur "java.util.Date.class" et est-ce que tu met des objets du type java.util.Date dans cette colonne? Et as-tu en plus bien attaché le "date renderer" ainsi que le "date editor" à la colonne date??
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
20 mars 2008 à 13:11
Salut,

Pourquoi tu poste dans le bar si ta question concerne JAVA ????

Je déplace vers le forum de javafr !
______________________________________
DarK Sidious
0
uhrand
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
20 mars 2008 à 16:35
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
veterant_mbk
Messages postés
8
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
22 mars 2008

21 mars 2008 à 14:45
bonjour,
merci pour ce code, je l'ai utilisé mais ça donne pas grand chose.
mon formulaire comporte une zone jTable ( 5 champs, 4 champs texte et le 5° est date) 5 zones labels et 5 zones textFields.
a l'ouverture du formulaire, une requete s'exécute et remplit la jTable
un clic sur une ligne de la jTable envoit son contenu dans les champs textField : je constate à ce niveau que le contenu du champ date, désigné datn, ne garnit pas la zone textField correspondante, notée datnField; par ailleurs datnField devient non accessible
inversement, si je clique sur new pour ajouter une ligne, chaquefois que je passe pas un textField, son contenu est affiché sur la nouvelle ligne de la jTable sauf pour datnField où il ne se passe rien
Aprés les transformations que vous m'avez indiqué, en double cliquant sur le champ date d'une ligne de la jTable, celuici devient editable; l'édition de la zone bloque l'accés à d'autres lignes de la jTable; si je clique sur save puis sur refresh, je constate que la modification a été réalisée

le veterant
0
veterant_mbk
Messages postés
8
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
22 mars 2008

22 mars 2008 à 16:24
bonjour,
ma table s'appelle masterTable, et la colonne date s'appelle datnField
j'ai mis le code suivant comme vous m'avez indiqué
--------
        masterTable.setModel(new javax.swing.table.DefaultTableModel
            (
                new Object[][] {
                    { new java.util.Date(), new java.util.Date(), "demo 1"},
                    { new java.util.Date(), new java.util.Date(), "demo 2"},
                    { new java.util.Date(), new java.util.Date(), "demo 3"},
                    {null, null, "demo 4"}
                },
                new String[]{"Date 1", "Date 2", "Demo"}
            )
            {
                Class[] types = new Class[]{java.util.Date.class, java.util.Date.class , String.class};
                public Class getColumnClass(final int columnIndex){
                    return types[columnIndex];
                };
            }


        );
----------
la compilation me dit que c'est une api dépréciée, en voila le message
---
Note: C:\form3\Form3View.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\form3\src\form3\Form3View.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
---
je ne comprends pas ce que vous m'avez demandé :
As-tu bien mis la colonne date sur "java.util.Date.class" et est-ce que tu met des objets du type java.util.Date dans cette colonne? Et as-tu en plus bien attaché le "date renderer" ainsi que le "date editor" à la colonne date??
---
pouvez vous éclaircir
merci
"

le veterant
0
uhrand
Messages postés
491
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
9
22 mars 2008 à 20:02
D'après ton code je vois que tu utilise bien java.util.Date (je demandais ça parcequ'il existe aussi java.sql.Date ). Le truc du renderer/editor se rapporte à mon premier message (voir plus haut).
0