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 :

problème de tri d'un jtable


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 29
    Points
    29
    Par défaut problème de tri d'un jtable
    salut a tous;
    j'ai un ptit problème avec le tri d'une table (jTable) qui contient des données chargés d'une bases de données, j'utilise même des jTextField pour l'affichage avec l’évènement: "addMouseListener". dans la déclaration de la table j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jTable.setAutoCreateRowSorter(true);
    mais après le tri, et quand je clique sur les colonnes, l'affichage dans les jTextField est toujours le meme avant le tri
    quelqu'un a-t-il une idée de ce qu'il me manque ?

    Merci d'avance pour votre aide

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 29
    Points
    29
    Par défaut
    mon problème est comme suite:
    d'abord j'ai crée un "DefaultTableModel dt" et j'ai initialisé le par la méthode suivante:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	private DefaultTableModel getdt() {
    		if (dt == null) {
    			dt = new DefaultTableModel();
    			dt.addColumn(("Num"));
    			dt.addColumn(("Nom"));
    			dt.addColumn(("Prenom"));
    			dt.addColumn(("date naiss"));
    			dt.addColumn(("Fonction"));
    		}
    		return dt;
    	}
    j'ai inséré les données dans la table à partir de la BDD avec la méthode:
    Code java : 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 static void affichage(DefaultTableModel dt) {
    		connection();
    		Statement stmt;
    		dt.setRowCount(0);
    		try {
    			stmt = con.createStatement();
    			ResultSet rs = stmt.executeQuery("Select * from PRSN");
    			while (rs.next()) {
    				int NUM = rs.getInt("NUM");
    				String NOM = rs.getString("NOM");
    				String PRENOM = rs.getString("PRENOM");
    				Date DATE_N = rs.getDate("DATE_N");
                                    String FONCTION = rs.getString("FONCTION");
     
    				Object[] stg = {  NUM, NOM,
    						PRENOM , DATE_N,FONCTION};
    				dt.addRow(stg);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    La table JTable jTable est initialisé par cette méthode:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private JTable getJTable() {
    		if (jTable == null) {
    			jTable = new JTable();
    			jTable.setAutoCreateRowSorter(true);
    			jTable.addMouseListener(new java.awt.event.MouseAdapter() {
    				public void mouseClicked(java.awt.event.MouseEvent e) {
    					i = jTable.getSelectedRow();
    					deplacerstagiaire(i);
    				}
    			});
    		}
    		return jTable;
    	}
    pour afficher les différent lignes dans des jtextfield, j'ai créé une méthode :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public void deplacerstagiaire(int j) {
     
    		try {
     
    			jTextField.setText(dt.getValueAt(j, 0).toString());
    			jTextField1.setText(dt.getValueAt(j, 1).toString());
    			jTextField2.setText(dt.getValueAt(j, 2).toString());
    			jTextField3.setText(dt.getValueAt(j, 3).toString());
    			jTextField4.setText(dt.getValueAt(j, 4).toString());
    		} catch (Exception e) {
    			JOptionPane.showMessageDialog(null, e.getMessage());
    		}
     
    	}

    enfin la méthode qui fait appelé les méthodes précédentes:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void affichagepers() {
      getdt();
      jTable.setModel(dt);
      affichage(dt);
      i = 0;
      deplacerstagiaire(i);
     
    	}

    alors quand je lance le programme, la table apparait sans tri comme suite:
    Nom : 1.jpg
Affichages : 152
Taille : 169,7 Ko
    puis quand je clique sur une colonne pour faire le tri, la table sera trié, mais le problème c'est que après le tri, et quand je clique sur les colonnes, l'affichage dans les jTextField est toujours le même avant le tri comme suite:
    Nom : 2.jpg
Affichages : 154
Taille : 172,1 Ko
    Nom : 3.jpg
Affichages : 161
Taille : 158,2 Ko
    quelqu'un a-t-il une idée???

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 29
    Points
    29
    Par défaut La Solution
    la solution de ce problème c'est de remplacer dt par jTable dans la méthode deplacerstagiaire():
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    public void deplacerstagiaire(int j) {
     
    		try {
     
    			jTextField.setText(jTable.getValueAt(j, 0).toString());
    			jTextField1.setText(jTable.getValueAt(j, 1).toString());
    			jTextField2.setText(jTable.getValueAt(j, 2).toString());
    			jTextField3.setText(jTable.getValueAt(j, 3).toString());
    			jTextField4.setText(jTable.getValueAt(j, 4).toString());
    		} catch (Exception e) {
    			JOptionPane.showMessageDialog(null, e.getMessage());
    		}
     
    	}

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/11/2008, 21h17
  2. Problème de tri avec analyse croisée
    Par drthodt dans le forum Access
    Réponses: 2
    Dernier message: 18/10/2005, 16h23
  3. [TToolBar] Problème de tri
    Par titiyo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/09/2004, 09h21
  4. [Collections] Problème de tri
    Par feti2004 dans le forum Collection et Stream
    Réponses: 16
    Dernier message: 03/08/2004, 16h45
  5. problème de tri et optimisatiopn
    Par psyco2604 dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 13/05/2004, 10h44

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