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

AWT/Swing Java Discussion :

Effacer contenu JTable java


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 7
    Par défaut Effacer contenu JTable java
    Bonjour, je développe une application java sur netbeans. J'utilise une table dans laquelle j'affiche les données provenant d'une bdd mysql.
    Maintenant, je veux vider le contenu de la table avant de charger les nouvelles données mais ça ne fonctionne pas.
    Ma table continu d'empiler les données pourtant j'ai essayé les méthodes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    maTable.remove();
    maTable.removeAll();
    maTable.repaint();
    maTable.reValidate();
    maTable.updateUI();
    Besoin d'aide s'il vous plait!

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 7
    Par défaut
    Bonjour,

    Avec un peu de code ça serait plus simple je pense

    Mais sinon je crois qu'il faut accéder au modèle de la table.

    Essaye quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DefaultTableModel model = (DefaultTableModel) maTable.getModel();
    model.setRowCount(0);
    Normalement si tu utilise le modèle par défaut ça va supprimer les lignes en trop (donc toutes dans notre cas) et prévenir l'affichage du changement qui va se mettre à jour, à vérifier tiens nous au courant

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 7
    Par défaut
    Bonjour Jeje, merci pour ta réponse, j'ai essayé ta méthode mais ça me vide complètement l'affichage graphique de ma table et n'affiche rien.
    Je ne sais pas si j'l'ai bien implémenté ta méthode mais voici mon code:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    DefaultTableModel model = (DefaultTableModel) table_avancement.getModel();
            model.setRowCount(0);
            table_avancement.setShowGrid(true);
     
            Connection cnx=null;
            ResultSet rs=null;
            Statement st=null;
            try{
                Class.forName("com.mysql.jdbc.Driver");
                String url="jdbc:mysql://localhost:3306/gestion_personnel";
                cnx=DriverManager.getConnection(url,"root","root");
                st= cnx.createStatement();
     
                String reqlecture="select * from avancement where pers_matricule='"+f_matricule.getText()+"' order by avan_id desc";
     
                rs= st.executeQuery(reqlecture);
     
                int i=0;
     
                while(rs.next())
                {
                    table_avancement.setValueAt(rs.getString("avan_id"), i, 0);
                    table_avancement.setValueAt(rs.getString("pers_matricule"), i, 1);
                    table_avancement.setValueAt(rs.getString("nouvelle_echelon"), i, 2);
                    table_avancement.setValueAt(rs.getString("date_prise_effet"), i, 3);  
                    i++;
                }
     
            } catch(ClassNotFoundException e){
                System.err.println(e.getMessage());
            } catch(SQLException x)
            {
                System.err.println(x.getMessage());
            } finally{
                if(st!= null){
                    try{
                        st.close();
                    } catch(SQLException e1){
                        e1.printStackTrace();
                    }
                    if(rs!= null){
                        try{
                            rs.close();
                        } catch(SQLException e1){
                            e1.printStackTrace();
                        }
     
                        if(cnx!=null){
                            try{
                                cnx.close();
                            } catch(SQLException e2){
                                e2.printStackTrace();
                            }
                        }
                    }
                }
            }
    Affichage avant
    Nom : avant.png
Affichages : 1320
Taille : 20,9 Ko

    affichage après
    Nom : après.png
Affichages : 1295
Taille : 17,6 Ko

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 80
    Par défaut
    Bonjour,

    Voici un rapide exemple :
    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
    24
    25
     
    private DefaultTableModel model = new DefaultTableModel(data, columnNames);
        private JTable table = new JTable();
     
        private void loadTable() {
            loadData();
            table.setModel(model);
    		// Vous pouvez ensuite faire des modifications sur la
    		// table, exemple : dimension des colonnes...
     
        }
     
        private void loadData() {
    		// peut être fait ailleurs
            model.addColumn("col 1");
            model.addColumn("col 2");
            model.addColumn("...");
            model.setRowCount(0); // clear les lignes
            // Ajout des lignes
    		String[] donnees;
    		for(int i = 0; i < 15; i++){
    			donnees = { "row " + i " col1", "row " + i + " col2", "..." };
    			model.addRow(donnees);
    		}
        }
    Et un tutoriel : https://thierry-leriche-dessirier.de...-5-min/#LIII-A

    Bonne soirée

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2018
    Messages : 7
    Par défaut
    Merci Millezime pour ta réponse mais jusque là le problème n'est pas résolu.
    le but est d'afficher les avancements d'un employé par un clic sur ce dernier. Jusque là ça fonctionne, sauf que si le 1er employé a 3 avancements et que le 2e n'en a qu'1, les 2autres avancements du 1er employé s'affichent en bas du tableau

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 80
    Par défaut
    Bonjour,

    Ceci provient de ta requête non ? Il me semble que tu trie par l'id des avancements, le résultat est alors forcément logique et provient de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from avancement where pers_matricule='"+f_matricule.getText()+"' order by avan_id desc;
    Quelque chose du genre devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from avancement where pers_matricule='"+f_matricule.getText()+"' order by pers_matricule desc;
    Attention, je te conseille d'utiliser l'objet "PreparedStatement" au lieu d'un objet "Statement", c'est une bonne habitude à prendre.
    Un peu de cours : https://java.developpez.com/faq/jdbc...paredStatement

    Bon courage

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/08/2015, 14h13
  2. Récupérer contenu JTable
    Par adn013 dans le forum Composants
    Réponses: 2
    Dernier message: 24/05/2007, 11h15
  3. Effacer contenu JTextField lors d'un clic
    Par javamax dans le forum Composants
    Réponses: 3
    Dernier message: 07/04/2007, 17h04
  4. Effacer la console Java
    Par tsharlz dans le forum Langage
    Réponses: 5
    Dernier message: 02/06/2006, 17h42
  5. effacer contenu d'un tableau
    Par mrtatou dans le forum C
    Réponses: 8
    Dernier message: 06/02/2006, 13h35

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