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 :

mettre plusieurs jtable dans une frame


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 17
    Points : 14
    Points
    14
    Par défaut mettre plusieurs jtable dans une frame
    Bonjour,

    C'est mon premier post dans le site

    Je veux mettre un nombre x des jtable dans mon frame. Le nombre x est généré par une boucle.

    quelque chose comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<x;i++)
    {
    table=new table();
    contentPane.add(table);
    }
    merci

  2. #2
    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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Sans plus d'informations, je demande à ma boule de cristal en bois et elle me dit que tu n'as pas choisi le bon layout.
    Le layout permet de faire une "mise en page" des composants ajoutés. Pour commencer, tu peux par exemple tester le BoxLayout.
    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.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Sans plus d'informations, je demande à ma boule de cristal en bois et elle me dit que tu n'as pas choisi le bon layout.
    Le layout permet de faire une "mise en page" des composants ajoutés. Pour commencer, tu peux par exemple tester le BoxLayout.
    tu peux me donne un exemple

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Et bienvenue sur Developpez.net.

    Le contentPane d'une JFrame a un BorderLayout par défaut et quand on utilise la méthode add sans indiquer de contrainte, on ajoute le composant par défaut dans l'emplacement BorderLayout.CENTER : donc, avec ton code, toutes tes JTables vont dans le même emplacement. Le problème c'est que pour le contentPane ça ne pose que le problème que les composants sont superposés, mais pour le BorderLayout, il n'est pas prévu pour ça, et ne gère qu'un seul composant au centre. Donc il ne faut jamais faire ça.

    Pour changer ça, tu peux, par exemple, utiliser un GridLayout, d'une colonne, qui te permettra d'avoir toutes les JTable les unes en dessous des autres. Ou un BoxLayout vertical. En revanche, tu auras intérêt à mettre les JTables dans un jscrollPane, sinon tu ne pourras pas les distinguer. Mieux, créer un JPanel intermédiaire, lui-même dans un JScrollPane, sinon tes JTable vont être casées dans une JFrame : si elles sont nombreuses, elles vont être écrasées et peu pratiques à utiliser.

    Enfin, il y a le problème de la hauteur : si tu mets plusieurs JTable avec JScrollPane directement dans un JPanel avec JScrollPane, pour peu qu'elles aient beaucoup de lignes, tu verras que ce n'est très pratique à utiliser. Il faut contraindre la hauteur pour voir un certain maximum de lignes.

    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
    public class DemoMultiJTable {
     
     
    	public static void main(String[] args) {
    		JFrame frame = new JFrame("Démo");
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		//JPanel panel = new JPanel(new GridLayout(0,1)); // exemple avec GridLayout
    		Box panel = new Box(BoxLayout.Y_AXIS); // équivaut à un JPanel avec BoxLayout
    		for(int i=0; i<10; i++) {
    			JTable table = new JTable(50,5);
    			table.setPreferredScrollableViewportSize(new Dimension(0,table.getRowHeight()*10)); // 10 lignes visibles maximum (en partant du principe que toutes les lignes ont la même hauteur)
    			panel.add(new JScrollPane(table)); //on ajoute les JTable par l'intérmédiaire d'un JScrollPane
    		}
    		frame.add(new JScrollPane(panel)); //on ajoute à la fenêtre le panel de JTable par l'intermédiaire d'un JScrollPane
     
     
    		frame.setSize(600, 400);
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. mettre plusieurs valeurs dans une cellule
    Par mgrizzly dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 15/05/2009, 10h42
  2. [Portlet] Mettre plusieurs portlets dans une portlet mère
    Par maysam dans le forum Portails
    Réponses: 3
    Dernier message: 24/02/2009, 21h20
  3. Ajouter boutons et jtable dans une frame
    Par faycalche dans le forum Débuter
    Réponses: 1
    Dernier message: 22/07/2008, 08h09
  4. [Debutant] Peut-on mettre plusieurs "submit" dans une servlet
    Par pracede2005 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 22/10/2007, 10h35
  5. Mettre plusieurs variables dans une seule
    Par fixbraun dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2007, 21h34

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