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]Remplir un OBject[][] avec une ArrayList


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut [Jtable]Remplir un OBject[][] avec une ArrayList
    Salut à tous ,

    voila mon problème : je voudrais créer un tableau(Jtable) et remplir celui si grâce à des ArrayList comme ceci :
    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
    class TableHotel extends JPanel {
     
     
    	    public TableHotel() {
    	        super(new GridLayout(1,0));	      
    	         ArrayList hot = Hotels.getListeHotels();
    	         ArrayList hot2 = Hotels.getListeHotels2();
    	         String[] columnNames = {"Nom Hotel",
    	                                "Etoiles",
    	                                "Chambres Simples",
    	                                "Chambres Doubles",
    	                                "prix"
    	                                };
    	         for(int i=0;i<hot.size();i=i+2){
    	        	 Object[][] data = {
    	        		          {hot.get(i),hot.get(i+1),hot.get(i+2),hot.get(i+3),hot2.get(i+1)},    
    	        		};
    	         }
    	        final JTable table = new JTable(data, columnNames);
     
    	        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
                JScrollPane scrollPane = new JScrollPane(table);
     
                add(scrollPane);
     
    	    }
    Sauf que mon Object[][] étant dans une boucle for celui-ci n'est plus reconnue dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final JTable table = new JTable(data, columnNames);
    J'espère avoir été assez clair Merci d'avance pour vos réponses

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 96
    Points
    96
    Par défaut
    Y a t il une raison pour laquel ta JTable est final ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    euh non pas du tout je ne m'en suis meme pas rendu compte

  4. #4
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    Salut,

    Deux choses :
    1) pourquoi declare tu ta JTable Final ?
    2) pourquoi ne declar tu pas ton object[][] data en variable de classe comme cela tu n'aura pas de probleme de porté de variable

    ++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    Merci de vos réponses je n'ai plus ce problème mais il y l'air que l'on ne peut remplir un objet avec des ArrayList

  6. #6
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Citation Envoyé par ArN0.VdB
    Merci de vos réponses je n'ai plus ce problème mais il y l'air que l'on ne peut remplir un objet avec des ArrayList
    ??? Ah bon

  7. #7
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    Je comprend pas ta derniere remarque si tu shouaite mettre une ArrayList dans un tableau qui contient des objet rien ne t'en empeche, puisque par definition ton tableau contenant des object et toute les class java héritant de Object, tu peut donc y mettre nimporte quoi

    ++

  8. #8
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 96
    Points
    96
    Par défaut
    remplir un objet avec des ArrayList
    Quel objet ?

    Tu paux caster en List ou faire list.toArray().... si ca peut répondre a ta question

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    ben en fait je voudrais pour voir remplir mon Object comme indiqué dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Object[][] data = {
    	        		          {hot.get(i),hot.get(i+1),hot.get(i+2),hot.get(i+3),hot2.get(i+1)},    
    	        		};
    mais eclipse m'indique ce message :


  10. #10
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben oui fais plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Object[][] data
    for(int i=0;i<hot.size();i=i+2){
    data[i] = new Object[4]{hot.get(i),hot.get(i+1),hot.get(i+2),hot.get(i+3),hot2.get(i+1)};
    si je ne dis pas de bêtise ...

  11. #11
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    en effet tu ne peux pas remplir un tableau de la sorte, il faut le faire à l'initialisation de ton tableau si tu veux le faire. Enfin dans tout les cas se que je ne comprend pas bien c'est que tu veuille mettre un objet de dimension 1 (ArrayList) dans un tableau de dimension 2 (Object [][]) faudrai que tu nous donnes qq explication suplementaire.

    Sinon tu peux aussi utiliser la méthode : addAll(Collection<? super T> c, T... elements) qui te permet d'ajouter une collection a un tableau

    un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //ajoute a la ligne 1 de ton tableau data tous les objet de hot (1 par colonne)
    collections.addAll(hot,data[1]);

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    ben en fait je veu ajouter des nom d'hotel,nombre chambre ,... a mon tableau et en regardant sur le tutorial de sun comment faire un jtable c'était expliqué comme cela donc j'ai fait comme indiqué

    Donc en gros je voudrais pour voir remplir un tableau avec des données receuille dans des ArrayList

    ps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    collections.addAll(hot,data[1]);
    eclipse me dis que collections n'est pas défini quand j'utilise cela

  13. #13
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    C'est Collections avec un C majuscul pardon ...

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    oui j'ai testé aussi ca mais nada.Y'a rien a importer pour pouvoir utiliser Collections?

  15. #15
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben faut lire les erreurs de compil c'est mieux ...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    Collections cannot be resolved

  17. #17
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Il faut importer la classe...
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    oui mais laquelle?

  19. #19
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    ba Collections
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    loool ba non ca marche po j'vous met tout mon code pour cette fenêtre la peut -être qu'avec tout le code ca vous aidera
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.util.ArrayList;
     
    import javax.swing.*;
    public class ConsultListe extends JFrame implements ActionListener{
     
    	private JPanel container = null;//Déclaration de l'objet JPanel
    	private FlowLayout layout = null ;//Déclaration de notre layout
    	private JLabel texte = null;//Déclaration de l'objet JLabel
    	private JButton bouton1 = null;//Déclaration du bouton
    	private String type;
    	private Fenêtre f;
    	private ConsultCat ct;
    	private Connection connection;
     
    //CONSTRUCTEUR	
     public ConsultListe(ConsultCat ct,String type)
     {
    	 super();
    	 this.type = type;
    	 this.ct=ct;
    	 this.f=ct.getF();
    	 connection=ct.getConnection();
    	 build();
     
     
     }
    //METHODE DE CONSTRUCTION DE LA FENETRE
    	private void build(){
    		this.setContentPane(getContainer());
        	this.setTitle("      (¯`·._.·[Agence de Voyage : Liste]·._.·´¯)"); //On donne un titre à l'application
    	    this.setSize(550,300); //On donne une taille à notre fenêtre
    	    this.setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    	    this.setResizable(false) ; //On interdit la redimensionnement de la fenêtre
    	    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de fermer lors du clic sur la croix
    	    this.setVisible(true);
     
    	}
    	private JPanel getContainer(){
    		layout = new FlowLayout(); //Instanciation du layout
    		layout.setAlignment(FlowLayout.CENTER);//On centre les composants
    		//CREATION DU CONTAINER
    		container = new JPanel() ; //On crée notre objet
    		container.setLayout(layout); //On applique le layout
    		container.setBackground(Color.LIGHT_GRAY);
    		//CREATION D'UNE TABLE
    		TableHotel test = new TableHotel() ;
     
    		container.add(test);
     
     
    		//CREATION DU BOUTON
    		bouton1 = new JButton () ;//Création du bouton
    		bouton1.setPreferredSize(new Dimension(200,50)) ;//On lui donne une taille
    		bouton1.setText("Retour menu principal") ;//On lui donne un texte
    		bouton1.addActionListener(this);
    		container.add(bouton1);//on ajoute les boutons au conteneur
     
    		return container ;
    	}
    	public void actionPerformed(ActionEvent e) {
    		if(e.getSource()==bouton1){
     
    			this.dispose();
     
    			f.setVisible(true);
     
    		}
    	}
    }	
    	 class TableHotel extends JPanel {
    		  private Object[][] data ;
     
    	    public TableHotel() {
    	        super(new GridLayout(1,0));	      
    	         ArrayList hot = Hotels.getListeHotels();
    	         ArrayList hot2 = Hotels.getListeHotels2();
    	         String[] noms = new String[hot.size()];
     
    	         for(int i=0;i<hot.size();i=i++)
    	         {
    	            noms[i]=(String)hot.get(i);
    	         }
     
    	         String[] columnNames = {"Nom Hotel",
    	                                "Etoiles",
    	                                "Chambres Simples",
    	                                "Chambres Doubles",
    	                                "prix"
    	                                };
    	         for(int i=0;i<hot.size();i=i++) 
     
    Collections cannot be resolved	=====>        Collections.addAll(hot,data[1]);
     
    	        JTable table = new JTable(data, columnNames);
     
    	        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
                JScrollPane scrollPane = new JScrollPane(table);
     
                add(scrollPane);
     
    	    }
     
     
    	 }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/05/2007, 17h04
  2. [DEBUTANTE] Pb avec une ArrayList et un Resultset
    Par mariafan dans le forum Collection et Stream
    Réponses: 27
    Dernier message: 09/01/2007, 15h33
  3. Remplir un Object[][] avec un fichier properties
    Par n8ken dans le forum Collection et Stream
    Réponses: 22
    Dernier message: 10/11/2006, 16h35
  4. [C#] Comment remplir un tableau avec un arraylist
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/06/2006, 15h14
  5. comment remplir 2 champs avec une seule listbox
    Par Didi17 dans le forum Access
    Réponses: 3
    Dernier message: 19/10/2005, 09h42

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