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

 Java Discussion :

Création de plusieurs JTable


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Par défaut Création de plusieurs JTable
    Bonjour à tous,

    J'ai suivi scrupuleusement le tuto suivant tout en l'adaptant au programme que je suis en train de développer : http://baptiste-wicht.developpez.com...ing/jtable/#L4

    J'ai donc créer une classe Ami et une classe beta dérivée d'AbstractModel. Tout ceci me permet d'afficher, dans un premier JTable, les données de l'arrayList qui a été créée dans la classe beta.

    Une des variables de ma classe Ami est un tableau (tab) que j'aimerais pouvoir afficher dans un second JTable lorsque je sélectionne une ligne du premier JTable et que je clique sur le bouton "afficher".

    Pouvez-vous m'orienter sur la méthode à suivre pour obtenir cette fonctionnalité ?

    En vous remerciant par avance,

    YC

  2. #2
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Salut,

    Le plus simple à mon avis est de gérer un évènement sur ton bouton.
    Lorsque tu cliques dessus, tu récupères la cellule courante, et tu traites les informations pour afficher ta 2ème table.

    Dans les grandes lignes ça ressemblera a ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    JButton button = new JButton();
    button.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    remplirMaTable(evt);  // Tu rediriges vers une méthode dédiée (pour plus de lisibilité)
                }
            });
     
    private void remplirMaTable(java.awt.event.ActionEvent evt) {
            //Traitement des données
            MonObjet obj = (MonObjet)maTable.getValueAt( maTable.getSelectedRow(), maTable.getSelectedColumn() ); 
        // tu remplies ta table
        }

  3. #3
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Salut,

    tu peux mettre un listener sur ton JTable comme ça tu évite l'étape bouton. Tu cliques sur la case de ton JTable, ton listener est activé et il renvoi la case cliquée puis ça te renvoi vers ton autre JTable.

    Tchao =)

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Par défaut
    Bonsoir,

    Je vous remercie pour ces réponses.

    Dans ma classe beta j'ai la fonction suivante qui me permet de transférer les donnée de data dans un objet et retourner cette objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public Object[][] AffConfig(int rowIndex){
     Object [][] aff = new Object[tab.get(rowIndex).Data.length]  [tab.get(rowIndex).Data[0].length];
     for(int x = 0; x < tab.get(rowIndex).Data.length;x++){
         for(int y = 0; y <tab.get(rowIndex).Data[0].length;y++){
    	aff[x][y] = tab.get(rowIndex).Data[x][y];
          }
     }
     
      return aff;
    }
    Et j'ai dans ma classe fenêtre le code suivant lorsque l'utilisateur sélectionne une ligne et clique sur le bouton afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private class AffichageConfig extends AbstractAction{
      private AffichageConfig(){
    	super("Afficher la configuration");
      }
     
    public void actionPerformed(ActionEvent e){
      int [] selection = tableau.getSelectedRows();
      Object[][] aff;
      for(int l= selection.length - 1;l >= 0; l--){
    	aff = Beta.AffConfig(selection[l]);
    	System.out.println(aff);
    	JTable config = new JTable(Object[][] aff,Object[] aff);
       }
    Lorsque j'affiche aff, j'ai bien l'adresse d'un objet qui m'indique que je récupère bien l'objet. Par contre lorsque j'essaie de créer ma second JTable, ça ne marche pas et je ne vois pas comment faire pour créer cette second JTable avec les données de l'objet que je souhaite afficher.

    Serait-il possible de m'indiquer la manière de procéder pour la création de cette seconde JTable ?

    En vous remerciant par avance,

    YC

  5. #5
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    C'est quoi qui ne marche pas, as-tu une erreur ?

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Par défaut
    Bonjour,

    Eclipse m'indique une erreur au niveau de la création du JTable et me propose de créer une TableModel qui n'a pas plus de succès.

    Je ne vois vraiment pas comment faire pour créer ce JTable avec les informations contenue dans le tableau tab.

    Tu trouveras ci-dessous les erreurs que j'obtiens quand je compile mon programme.

    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
    Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problems: 
    	Syntax error on token(s), misplaced construct(s)
    	Syntax error on token(s), misplaced construct(s)
     
    	at WindowOutput$AffichageConfig.actionPerformed(WindowOutput.java:112)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    	at java.awt.Component.processMouseEvent(Component.java:6505)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    	at java.awt.Component.processEvent(Component.java:6270)
    	at java.awt.Container.processEvent(Container.java:2229)
    	at java.awt.Component.dispatchEventImpl(Component.java:4861)
    	at java.awt.Container.dispatchEventImpl(Container.java:2287)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    	at java.awt.Container.dispatchEventImpl(Container.java:2273)
    	at java.awt.Window.dispatchEventImpl(Window.java:2719)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:694)
    	at java.awt.EventQueue$3.run(EventQueue.java:692)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    	at java.awt.EventQueue$4.run(EventQueue.java:708)
    	at java.awt.EventQueue$4.run(EventQueue.java:706)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    YC

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

Discussions similaires

  1. Création de plusieurs bases
    Par Asdorve dans le forum Débuter
    Réponses: 2
    Dernier message: 26/04/2006, 16h11
  2. création de plusieurs TEdit par programmation
    Par faten7 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/04/2006, 21h22
  3. Création de plusieurs niveaux de sous formulaires
    Par Farbin dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2005, 20h15
  4. création de plusieurs fiches dans un meme formulaire...
    Par Toff !!!!! dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 13h44
  5. création de plusieurs threads dans WinMain
    Par ChidoriRasengan dans le forum DirectX
    Réponses: 1
    Dernier message: 15/06/2005, 21h36

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