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] Ajouter une ligne dans un table triée


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Par défaut [JTable] Ajouter une ligne dans un table triée
    Bonjour,
    J'ai une JTable triable et ce que je veux c'est pouvoir ajouter des lignes vides à la fin de la table, chose faite dans le cas ou la table n'est pas triée mais lorsque je trie ma table l'ordre change dans tout les sens et j'arrive plus à faire un get du dernier élément (de la table triée).
    et apres mettre le focus dessus.
    voici comment je procede :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    private void Ajouter() {
    		if (table.isEditing())
    			if (table.getCellEditor() != null)
    				table.getCellEditor().stopCellEditing();
    		model.insertRow(table.getRowCount(), ajout_ligne_vide());
    		table.editCellAt(table.getRowCount() - 1, 0);
    		table.getEditorComponent().requestFocus();
    	}
    J'ai essayé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    table.convertRowIndexToModel(table.getSelectedRow());
    pour recuperer la ligne mais toujours rien j'arrive pas à chopper la derniere ligne de ma table triée (non trié cest un simple getRowCount())
    quelqu'un voit il une solution ?

  2. #2
    Membre confirmé Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Par défaut
    en fait je viens de comprendre un pti peu le mecanisme c'est que quand je fais l'ajout de la ligne elle est bien ajoutée à la fin de ma table mais comme je trie par ordre décroissant ma ligne et tout en haut !!
    mais je vois toujours pas comment faire ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut
    plutot que de rechercher ta ligne tu devrais garder une référence sur cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maLigne = ajout_ligne_vide();
    model.insertRow(table.getRowCount(), maLigne);
    tu pourras ainsi accéder directement à ta ligne indépendament du tri.

    P.

  4. #4
    Membre confirmé Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Par défaut
    Au fait ma fonction ajout_ligne_vide() son metier ce'st de me retourner un vecteur de valeur vide à n colonnes.
    et puis je pense que ce que tu me dis ne marchera pas dans le cas ou je tri ma table avant d'ajouter de ligne par contre je suis d'accord avec si tu rajoute AVANT LE TRI une ligne vide.
    euuh je suis pas sur de moi je vais tester !
    tu veux dire quoi pas par une reference, tout simplement l'indice de la derniere ligne ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 187
    Par défaut
    maLigne doit etre une propriété de ta classe contenant directement la Ligne que tu insert (pas son index).
    je n'ai pas l'api en tête mais un truc du genre

    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
    public class maclass {
    private Row maLigne = null;
     
    private void Ajouter() {
    		if (table.isEditing())
    			if (table.getCellEditor() != null)
    				table.getCellEditor().stopCellEditing();
                    maLigne = ajout_ligne_vide();
    		model.insertRow(table.getRowCount(), maLigne);
    		table.editCellAt(table.getRowCount() - 1, 0);
    		table.getEditorComponent().requestFocus();
    	}
     
    private Row getLigneVide(){
         return maLigne;
    }
    }
    Row etant la classe Swing contenant ta ligne (nom de classe à vérifier)
    voila

  6. #6
    Membre confirmé Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Par défaut
    ok donc si j'ai bien compris, je dois faire un truc de ce genre :
    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
     
    private Vector maLigne = null;
     
    private void Ajouter() {
    		if (table.isEditing())
    			if (table.getCellEditor() != null)
    				table.getCellEditor().stopCellEditing();
                    maLigne = ajout_ligne_vide();
    		model.insertRow(table.getRowCount(), maLigne);
    		table.editCellAt(table.getRowCount() - 1, 0);
    		table.getEditorComponent().requestFocus();
    	}
     
    private Vector getLigneVide(){
         return maLigne;
    }
     
    private Vector ajout_ligne_vide() {
    		Vector vide = new Vector();
    		for (int i = 0; i < table.getColumnCount(); i++) 
    			vide.add("");
                    return vide;
    }
    avec ça je pense pas que t'as modifié grand chose à part remplacer l'appel de fonction.
    desole mais je crois que j'ai pas vraiment compris.
    c'est bien ça ?
    parceque ce qui pose probleme c'est l'index de la vue TRIEE et non pas la reference.

Discussions similaires

  1. [WD16] problème pour ajouter une ligne dans la table
    Par T1929D dans le forum WinDev
    Réponses: 3
    Dernier message: 02/08/2013, 22h39
  2. Ajouter une ligne dans une table?
    Par purplebamboo dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 06/05/2009, 14h46
  3. Comment ajouter une ligne dans un Jtable
    Par fefe69 dans le forum Composants
    Réponses: 1
    Dernier message: 10/03/2009, 11h57
  4. Ajouter une ligne dans une table
    Par JeanDan dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 09/12/2008, 09h48
  5. [DOM] Ajout dynamique d'une ligne dans un <table>
    Par Alzelus dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/05/2007, 17h05

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