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 avec deux JScrollPane


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut JTable avec deux JScrollPane
    Bonjour à tous
    Bon j'ai un petit soucis si quelqu'un peut m'aider... Afficher un JTable avec deux JScrollPane Horizontale Verticale... Voilà le code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    T= new JTable(Cd); //Cd est un DefaultTableModel
    		T.setRowHeight(25);
    		T.getTableHeader().setPreferredSize(new Dimension(0, 60));
    		T.setAutoscrolls(true);
    		JScrollPane PV=new JScrollPane(T);
    		PV.setEnabled(false);
    		PV.setBackground(Color.WHITE);
    		PV.setForeground(Color.WHITE);
    		Container Pan = getContentPane();
    		JScrollPane PH = new JScrollPane(T);
    		PH.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    		Pan.add(PH);
    		Pan.add(PV);
    		getContentPane().add(Pan, BorderLayout.CENTER);

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Déjà il faut supprimer cette ligne qui indique que tu ne veux pas de scrollbar horizontale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PH.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

    Ensuite il faut savoir que la JTable a un comportement un peu particulier : Lorsqu'elle est dans un JScrollPane, elle va redimensionner automatiquement ses colonnes afin de ne pas avoir besoin de scrollbar horizontal.

    Pour éviter ce comportement il faut désactiver l'auto-redimensionnement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

    a++

  3. #3
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    Merci adiGuba
    Voici le nouveau code est ça marche !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    T= new JTable(Cd); //Cd est un DefaultTableModel
    		T.setRowHeight(25);
    		T.getTableHeader().setPreferredSize(new Dimension(0, 25));
    		T.setAutoscrolls(true);
    		T.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    		JScrollPane PV=new JScrollPane(T);
    		PV.setEnabled(false);
    		PV.setBackground(Color.WHITE);
    		PV.setForeground(Color.WHITE);
    		PV.setSize(600,400);
    		JScrollPane PH = new JScrollPane(T);
    		PH.setEnabled(false);
    	add(PH);
    Mais j'ai un autre petit problème

    On m'affiche pas toutes les colonnes!!!
    Juste celle affichées avant de glisser le JScrollPane Horizontal!!!
    Le Jtable est de 17 colonnes...
    Voilà un lien de l'imprime écran
    http://chat.developpez.com/upload/eb...9399b6d0b8.png
    Avez vous une idée?

  4. #4
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut Résolution !!! (2)
    Bon j'ai trouvé ce qu'il me manquait...
    la taille du JTable est petit...
    il fallait l'agrandir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	T.getTableHeader().setPreferredSize(new Dimension(5000, 50));

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Il vaudrait mieux ne pas donner de taille du tout : cela s'adaptera à la taille requise...

    De même je ne comprend pas pourquoi il y a deux JScrollPanes dans ton code (PV et PH). (je n'avais pas fait gaffe à cela avant - tes conventions de nommages ne sont pas très lisible je trouve...)

    a++

  6. #6
    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
    De plus il est impossible de placer un composant en deux endroits différents. De fait mettre ta JTable à la fois dans PH et dans PV ne marchera pas correctement.

    Il te faut donc créer deux JTable basées sur le même TableModel, une pour PH et une pour PV.

    Et ainsi que le recommande Adiguba, il serait préférable pour la compréhension de ton code que

    1. Tu respecte les conventions de codage/nommage usuelles en java
    2. Que tu utilises des noms de variables un tant soit peu significatifs.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/05/2011, 11h17
  2. peut on faire un JTable avec JScrollPane et sans entete ?
    Par colonnel dans le forum Composants
    Réponses: 2
    Dernier message: 06/05/2010, 15h25
  3. Construction du JTable avec deux vecteurs
    Par lamis2009 dans le forum Composants
    Réponses: 2
    Dernier message: 23/06/2009, 16h58
  4. Defilement dans un jTable, avec un jScrollPane
    Par CyberSlan dans le forum Composants
    Réponses: 2
    Dernier message: 20/06/2008, 11h21
  5. [JTable] Cellule avec deux boutons
    Par cherbox dans le forum Composants
    Réponses: 3
    Dernier message: 12/08/2004, 17h26

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