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

AWT/Swing Java Discussion :

Une colonne et une ligne fixes ?


Sujet :

AWT/Swing Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Une colonne et une ligne fixes ?
    Bonjour,

    Je tente desesperement de manipuler des JTables, sans succès...
    Mon problème est le suivant:

    J'ai une JTable suffisament grande pour avoir un assez long ScrollPane.
    Cette table doit avoir un header en haut de colones (ca, c'est OK), mais aussi une entete à droite de chque lignes.
    Bien que j'arrive à avoir un affichage similaire, je n'arrive pas à, lors des scrolls vers la droite, conserver immobile les entetes de lignes.
    D'ou ces deux questions:
    - Est il possible de définir des entetes en haut de colonnes et à gauche des lignes (tout en faisant en sotre que cette 1er colone et cette 1er ligne ne bougent pas d'un pixel malgrès les scrolls );
    - Si ce n'est pas possible, existe t'il une alternative simple sans utiliser un autre objet?

    Merci infiniment pour vos renseignements.

    cartol

    EDIT: j'ai essayé de créer une deuxieme JTable à la gauche de la premiere, mais il y a un décalage d'un pixel => pas propre

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu étais sur la bonne piste en créant une deuxième JTable.
    Pour avoir une ou plusieurs colonnes fixes il te suffit d'ajouter une JTable contenant ces colonnes au rowHeader du JScrollPane contenant la JTable contenant tes données scrollables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    JScrollPane scrollPane = new JScrollPane();
    JTable tableScrollable= new JTable(...);
    JTable colonnesFixes= new JTable(...);
     
    scrollPane.setViewPortView(tableScrolable);
    scrollPane.setRowHeaderView(colonnesFixes);
    scrollPane.setCorner(UPPER_LEFT_CORNER,colonnesFixes.getTableHeader()); //sert à avoir les entêtes pour les colonnes fixes
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci infiniment, cela marche parfaitement...

    J'ai juste un petit probleme de dimention de la colonne fixe (qui est bien trop grande), mais je vais essayer de trouver pourquoi.

    Encore merci.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Je suis plutôt intéressé par cette colonne fixe. J'ai moi aussi réussi à la mettre en place mais lorsque je change sa taille, un trou apparait entre mes deux tables. As tu réussi à modifier la taille comme tu le voulais ?

    Voici mon 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
    tablePanel = new JScrollPane(table);
     
    		JTable colonnesFixes= new JTable(new TimesTableModel((DataCollection)dataCollections.get(0)));
    		colonnesFixes.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    		FontMetrics fm = colonnesFixes.getFontMetrics(colonnesFixes.getFont());
    		int maxWidth = 0; 
    		for(int i = 0; i<colonnesFixes.getRowCount(); i++){
    			maxWidth = Math.max(maxWidth, fm.stringWidth(colonnesFixes.getValueAt(i, 0).toString()));
    		}
    		colonnesFixes.getTableHeader().getColumnModel().getColumn(0).setPreferredWidth(maxWidth+20);
     
     
    		tablePanel.setRowHeaderView(colonnesFixes);
    		tablePanel.setCorner(JScrollPane.UPPER_LEFT_CORNER,colonnesFixes.getTableHeader());

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    C'est bon, j'ai trouvé
    Voila ce qu'il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tablePanel.getRowHeader().setPreferredSize(new Dimension(maxWidth+20,tablePanel.getRowHeader().getPreferredSize().height));
    Il suffit de changer la taille du RowHeader.

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

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. [WD16] Récupérer la valeur d'une colonne d'une table d'une ligne précise
    Par elghers_hocine dans le forum WinDev
    Réponses: 16
    Dernier message: 06/05/2011, 18h11
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. Réponses: 4
    Dernier message: 31/10/2007, 20h27
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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