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 :

Utilisation de JTable


Sujet :

Composants Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut Utilisation de JTable
    Bonjour,


    Je souhaiterais afficher n Jtables dans n onglets.

    chaque onglet aura son tableau et chaque tableau est indépendant !!

    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Bonjour,

    Va voir les tutos du site sur les JTables ou les nombreux posts à ce sujet.
    Tout ceci est accessible via une petite recherche que je te laisse faire.

    De rien.

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Et les JTabbedPane à priori aussi, pour les onglets.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    voici ce que j'ai réalisé mais le problème c'est que j'ai le meme tableau dans chaque onglet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    JTabbedpane tab=new JTabbedPane();
    for(int i=0;i<5;i++)
    {
    JTable matable=new JTable();
    JPanel panneau =new JPanel();
    panneau.add(matable);
     
    tab.addTab("",panneau);
     
    }
     
    add(tab);

  5. #5
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Ça parait logique non?

    Tu as 5 JTable identiques (vide) sur 5 Panel identiques...
    En quoi les voudrais tu différentes, si ce n'est les données dedans?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    car si je modifie les valeurs dans un onglet, cela se répercute sur les autres onglets

  7. #7
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    On aimerais un peu plus de code!

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    comment créer n JTables différentes dans le sens instances différentes

  9. #9
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Citation Envoyé par jojo_ol76 Voir le message
    comment créer n JTables différentes dans le sens instances différentes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    JTable table_1 = new JTable();
    JTable table_2 = new JTable();
    [...]
    JTable table_n = new JTable();
    ...

    Si tu fournis pas plus de code, on peut pas t'aider!

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    il n'y a pas de possibilité de le faire dans une boucle puisque je saisit la valeur de n qui se trouve être le nombre de tables?

  11. #11
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Si, mais il faut stocker ces JTable dans une List ou un tableau dans ce cas là.

    Java ne permet pas de créer de noms de variables dynamiquement vu que c'est un langage compilé et non interprété.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    java est un langage compilé et interprété

  13. #13
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En fait il est compilé deux fois (cf la notion de compilateur JIT autrement appelé Compilation à la volée ). La JVM n'est pas vraiment un interpréteur au sens du terme.

    De toute façon la première compilation empêche l'emploi de noms de variables dynamiques

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    Voici ce que j'ai réalisé mais toujours le meme problème:


    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
     
    List<JTable> ensembleTable=new ArrayList<JTable>;
     
    for(int i =0;i <nombre; i++)
    {
    JTable matable=new JTable(valeur,colonne);
    JPanel panneau =new JPanel();
    ensembleTable.add(matable);
     
    panneau.add(ensembleTable.get(i));
     
    tab.addTab("",panneau);
     
     
     
    }
     
    add(tab);

  15. #15
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par jojo_ol76 Voir le message
    java est un langage compilé et interprété
    On dit usuellement qu'il est pré-compilé et interprété.

    Citation Envoyé par jojo_ol76 Voir le message
    Voici ce que j'ai réalisé mais toujours le meme problème:


    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
     
    List<JTable> ensembleTable=new ArrayList<JTable>;
     
    for(int i =0;i <nombre; i++)
    {
    JTable matable=new JTable(valeur,colonne);
    JPanel panneau =new JPanel();
    ensembleTable.add(matable);
     
    panneau.add(ensembleTable.get(i));
     
    tab.addTab("",panneau);
     
     
     
    }
     
    add(tab);
    Donne un code complet minimal compilable qui illustre clairement le soucis.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  16. #16
    Nouveau candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Par défaut Tu crées un container TabbedPane
    Tu crées un container TabbedPane et dans chaque TabbedPane, tu ajoutes un Panel qui va containir un JTable.
    voici un exemple simple de création de JTable: http://sakoba.byethost13.com/2010/11...ng-with-table/

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    Voici ce que j'ai réalisé mais cela ne fonctionne pas

    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
     
    public class Client extends JPanel implements ActionListener {
     
     
    	JLabel montexte1 = new JLabel();
    	JLabel montexte2 = new JLabel();
    	JTextField champ1 = new JTextField(), champ2 = new JTextField();
    	JTable matable;
    	JCheckBox premier_choix, deuxieme_choix, troisieme_choix;
    	JPanel panneau1 = new JPanel(), panneau2 = new JPanel(),
    			panneau3 = new JPanel(), panneau4 = new JPanel();
    	static int nb_lignes;
    	static int nb_colonnes;
    	static int dimension;
    	JLabel mavaleur = new JLabel();
    	JButton valider = new JButton();
    	JTabbedPane tabbedpane = new JTabbedPane();
     
    	public Client2() {
    	}
     
    	public Client2(int nb_lignes, int nb_colonnes, int dimension) {
     
    		System.out.println("" + nb_lignes);
    		this.nb_lignes = nb_lignes;
    		this.nb_colonnes = nb_colonnes;
    		this.dimension = dimension;
     
    		setLayout(new BorderLayout());
     
    		List<JTable> ensembleTable = new ArrayList<JTable>();
            Object[][] valeur=new Object[][] ();        
            String[] column_num = new String[nb_colonnes];
    		for (int i = 1; i <= dimension; i++) {
     
    			matable = new JTable(valeur, column_num);
    			ensembleTable.add(matable);
    			JPanel paneldimension = new JPanel();
    			paneldimension.setLayout(new BorderLayout());
    			paneldimension.add(ensembleTable.get(i - 1), BorderLayout.NORTH);
    			tabbedpane.addTab("dimension n°" + i, paneldimension);
     
    		}
    		add(tabbedpane, BorderLayout.NORTH);
     
    	}
     
    	public void main(String[] args) {
     
    		System.out.println("Main");
     
    	}
     
    }

  18. #18
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Le comportement est normal.
    Voici le source du constructeur de JTable que tu utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        public JTable(final Object[][] rowData, final Object[] columnNames) {
            this(new AbstractTableModel() {
                public String getColumnName(int column) { return columnNames[column].toString(); }
                public int getRowCount() { return rowData.length; }
                public int getColumnCount() { return columnNames.length; }
                public Object getValueAt(int row, int col) { return rowData[row][col]; }
                public boolean isCellEditable(int row, int column) { return true; }
                public void setValueAt(Object value, int row, int col) {
                    rowData[row][col] = value;
                    fireTableCellUpdated(row, col);
                }
            });
        }
    Les données passées en paramètres ne sont pas copiées, mais utilisées directement. Donc une modification sur les données du tableau transmis en paramètre va modifier toutes les tables.
    Une solution possible : tu transmets un clone du tableau de données au lieu de l'original.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    542
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 542
    Par défaut
    Voici ce que j'ai fait mais toujours le même problème:
    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
     
    matable = new JTable(valeur.clone(), column_num);
     
            for (int i = 1; i <= dimension; i++) {
     
                ensembleValeurs.add(valeur);
                ensembleTable.add(matable);
                panel.add(ensembleTable.get(i - 1));
                paneldimension.add(panel);
                tabbedpane.addTab("dimension n°" + i,paneldimension.get(i - 1));
                ensembletabbedpane.add(tabbedpane);
     
     
            }
     
            add(tabbedpane);




Discussions similaires

  1. utilisation des jtable
    Par stezosensei dans le forum NetBeans
    Réponses: 2
    Dernier message: 14/12/2012, 11h59
  2. Utilisation des JTable
    Par sylvainkouo dans le forum Langage
    Réponses: 1
    Dernier message: 11/12/2012, 07h28
  3. utilisation de jtable
    Par manelisg dans le forum Composants
    Réponses: 13
    Dernier message: 28/03/2009, 21h28
  4. utiliser un Jtable
    Par anime dans le forum Composants
    Réponses: 3
    Dernier message: 03/09/2007, 14h09
  5. Utilisation de JTable ou affichage en tableau
    Par volontier dans le forum Composants
    Réponses: 5
    Dernier message: 03/06/2006, 21h16

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