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 :

Modification du contenu , et nombre de ligne


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 70
    Par défaut Modification du contenu , et nombre de ligne
    Bonjour tout le monde , je vous expose mon petit soucis.

    Je travaille sur NetBeans.

    Je dois créer pour un projet , une application recensant par exemple tout les animaux d'un zoo , les lister dans une jtable et pouvoir ainsi faire des modifications dessus.

    On ne s'occupe pas de la persistance des données.



    Donc j'ai un menu initialisant le zoo (on a donc-> zoo A= new zoo(); ) ,


    Dans Zoo j'ai un Vector<animal> listedesanimaux

    mon soucis desormais est d'afficher dans la jTable par exemple :

    [ A.getZoo().elementAt(0).getId() ] [A.getZoo().elementAt(0).getNom() ] ....
    [ A.getZoo().elementAt(1).getId() ] etc....

    Bon les nom de fonction sont fictifs c'est juste pour clarifier ce que je desire faire.



    j'ai donc pensé d'abord a faire une boucle contenant ceci :



    jTable1.setValueAt("TEST",i,0);
    jTable1.setValueAt("TEST1",i,1);
    etc ...

    avec i = taille de mon vector

    Probleme , la taille de mon tableau est trop petit en nombre de ligne (a l'initialisation) et donc j'ai une erreur de pointeur si mon vecteur dépasse une certaine taille.
    Peut t'on rajouter des lignes peut être a ma jtable avant de les remplir ?




    j'ai pensé a une seconde solution qui m'a eu l'air plus propre mais je ne sais pas si c'est possible :


    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
     
     
     jTable1.setModel(new javax.swing.table.DefaultTableModel(
     
                R1.aideAffichage(),  // doit renvoyer un Object[][]  R1 est l'instance
    //du zoo 
     
                new String [] {
     
                   "Test", "Nom poisson", "id", "blabla"
                }
            )  {
                boolean[] canEdit = new boolean [] {
                    false, false, false, false
                };
     
                public boolean isCellEditable(int rowIndex, int columnIndex) {
                    return canEdit [columnIndex];
                }
            }
     
                );
    ça me renvoi une erreur , déjà peut on opérer comme ça ? en sachant que le tableau a l'ouverture du prog est initialisé avec rien dedans (et non éditable)

    Si on peut opérer de cette façon le problème doit venir de ma fonction affichage (présent dans la classe zoo R1 étant une instanciation de zoo)

    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
     
     
    public Object[][] aideAffichage()
       {
           int taille = listedesanimaux.size();
           Object[][] tab = new Object[taille][4]; //gros doute !!!
     
           for(int i=0;i<taille;i++){
     
               Animal t=listedesanimaux.elementAt(i);
     
               tab[i][0]=t.idbis; // juste ça pour le moment pour tester
     
     
           }
               return tab;
     
     
        }

    Peut etre dans cette solution l'erreur vient de l'initialisation du tableau ? ou peut etre est ce impossible d'opérer ainsi :/

    Autre question (mais ça j'ai pas vraiment cherché) peut t'on empecher l'utilisateur de bouger les collonnes de la jTable ?

    (si j'utilise la première méthode ça plante tout )

  2. #2
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut
    Ta solution d'affecter un modèle à ta table est une bonne solution.
    Il faut que tu crées une classes "Animal" qui contiendra par exemple la liste de tous tes animaux en variable static, puis que tu lui fasse implémenter 'DefaultTableModel' et enfin que tu redéfinisses les méthodes abstraites de 'DefaultTableModel' et le tour est joué !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 70
    Par défaut
    Justement dans ma classe Zoo , j'ai en variable la liste des animaux (un vector) et d'autre élément ,

    je dois donc si j'ai bien compris faire :

    public class zoo implements DefaultTableModel {

    .....
    }

    ça me donne une erreur (netbeans pas a la compilation)

    Interface expected here
    :/

    Desolé suis encore un peu debutant



    EDIT:La seconde methode fonctionne ! Seulement j'ai du passer le balai(clean and build) pour voir le resultat s'afficher.

    Vous savez comment évitez de passez le balai tout le temps ?

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

Discussions similaires

  1. Modification du nombre de lignes du résultat
    Par fabigol dans le forum SQL
    Réponses: 5
    Dernier message: 28/06/2015, 22h50
  2. [XL-2007] Modification/suppression contenu ligne en VBA
    Par Bouillou35 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/11/2014, 14h56
  3. Réponses: 3
    Dernier message: 15/03/2011, 11h19
  4. Réponses: 16
    Dernier message: 01/03/2010, 11h40
  5. Nombre de ligne contenu dans un ResultSet
    Par BRAUKRIS dans le forum JDBC
    Réponses: 3
    Dernier message: 12/09/2005, 10h40

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