IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

JTable : édition d'une cellule de type Date


Sujet :

Composants Java

  1. #1
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut JTable : édition d'une cellule de type Date
    Bonjour,

    L'une des colonnes de ma JTable contient des objets de type Date.
    Je peux aisément donner le format (dd/MM/yyyy) pour le rendu, mais lorsque je passe en édition, je me retrouve avec un format probablement défaut de type long. Comment puis-je adapter ce format d'édition afin qu'il corresponde au format d'affichage ?

    d'avance merci.

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    J'ai trouvé ceci:
    http://forum.java.sun.com/thread.jsp...sageID=9758256

    mais que de lignes de code pour si peu...

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Voilà en plus simpliste :

    - pour l'édition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public class DateEditor extends DefaultCellEditor {
     
        private JFormattedTextField textField;
     
        public DateEditor(String format) {
            super(new JFormattedTextField(new SimpleDateFormat(format)));
            textField = (JFormattedTextField) getComponent();
        }
     
        @Override
        public Object getCellEditorValue() {
            return textField.getValue();
        }
     
        @Override
        public Component getTableCellEditorComponent(JTable table,
                Object value, boolean isSelected,
                int row, int column) {
            super.getTableCellEditorComponent(table, value, isSelected, row, column);
            textField.setValue(value);
            return textField;
        }
    }
    - pour l'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class DateRenderer extends DefaultTableCellRenderer {
     
        private DateFormat dateFormat;
     
        public DateRenderer(String format) {
            dateFormat = new SimpleDateFormat(format);
        }
     
     
        @Override
        public void setValue(Object value) {
            setText((value == null) ? "" : dateFormat.format(value));
        }
    }
    Ensuite pour les associer à la classe Date dans ta table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String format = "dd/MM/yyyy";
    testTable.setDefaultEditor(Date.class, new DateEditor(format));
    testTable.setDefaultRenderer(Date.class, new DateRenderer(format));

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Merci bien

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ou sinon yu peux finasser un peu en utilisant les composants JCalendar ou JXDatePicker de Swingx comme renderers et editors

  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Oui, ce serait une version "Caviard"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POI] Problème de lecture d'une cellule de type date
    Par syrinEn dans le forum Documents
    Réponses: 2
    Dernier message: 29/06/2015, 12h10
  2. [POI] Lecture d'une cellule de type date
    Par le_misterioso dans le forum Documents
    Réponses: 11
    Dernier message: 31/08/2010, 21h34
  3. Réponses: 4
    Dernier message: 13/05/2009, 10h26
  4. [JTable] Popup pour l'édition d'une cellule
    Par gids01 dans le forum Composants
    Réponses: 2
    Dernier message: 14/04/2008, 14h51
  5. [JTable] Déplacer le focus et l'édition d'une cellule
    Par nicorama dans le forum Composants
    Réponses: 1
    Dernier message: 27/04/2007, 03h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo