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

Agents de placement/Fenêtres Java Discussion :

Séparateur pour une JTable


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut Séparateur pour une JTable
    Bonjour,
    j'aimerais savoir si il etait possible d'inserer des separateurs de colonnes dans une JTable et quelle est la methode. Apres plusieurs recherches non fructueuses je me demande si ca existe.
    Merci d'avance,
    Liiiinz

  2. #2
    Membre actif Avatar de akrom
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Points : 201
    Points
    201
    Par défaut
    Qu’appelle tu séparateur de colonnes ? Si c'est les séparateurs dans un fichier comme la virgule pour les .csv c'est à toi de le gérer , La JTable est un composant graphique qui permet d'afficher des données sous forme de tableau mais n'est pas un tableur comme excel c'est a toi de faire le traitement des données.
    On peut tout faire seul avec de la persévérance mais ça va plus vite à plusieurs.

    Je ne répondrais pas aux questions technique par MP .

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Non j'appelle separateur de colonnes un outil qui permet de separer deux colonnes par une marge par exemple et non une colonne vide si tu vois ce que je veux dire...

  4. #4
    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
    Serait-ce les méthodes setShowHorizontalLines et setShowVerticalLines (ou setShowGrid pour les deux à la fois) que tu serais en train de chercher?
    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.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Merci a priori ca a l'aire d'etre ca mais je ne comprend pas son fonctionnement car l'on ne peut pas ajouter la dimension de la separation vu que le seul parametre est un bool...
    Je suis desole je ne comprend pas comment l'utiliser, si vous pouviez encore m'aider je vous en remercie d'avance (je debute le java ...)

  6. #6
    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
    la méthode setRowMargin devrait t'être utile dans ce cas.
    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.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Erf non, cela me mets une marge a l'interieur des cellules. Je crois que j'ai mal explique le but de ma demande. En fait j'aimerai que la premiere colonne de ma JTable soit separer de la table et des autre colonne... C'est a dire creer un espace ou l'on verrai le scrollPane par exemple, un peu comme dans le cas de l'image suivante:
    http://imageshack.us/f/135/tabds3.jpg/
    Merci d'essayer de m'aider

  8. #8
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    En faisant croire au ScrollPane qu'il s'agit des titres de ligne, peut-être :

    Avoir une 2ème table avec ta première colonne et l'ajouter au RowHeader du ScrollPane (qui contient la première table )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myScrollPane.setRowHeaderView(maDeuxiemeTable);
    ...à voir si ça le fait !

    bonne chance.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Merci pour la piste mais a priori le scrollPane n'est pas dupe... ou c'est moi qui l'ai mal fait mais je ne pense pas...
    Je ne vois vraiment pas comment faire sinon..

  10. #10
    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
    Mettre la colonne à séparer dans une table à part, ajouter cette table au rowHeader.

    Puis placer une EmptyBorder avec la marge qui va bien à gauche sur la table principale?
    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.

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    Ca a l'aire de marcher mais mon probleme c'est que je ne peux pas mettre de header a mon deuxieme tableau, et je n'arrive pas non plus a lui donnee une taille ( du coup mes deux tableaux non pas la meme taille de cellule)... Mais c'est dans l'idee, il n'y a plus qu'a creuser!
    Merciiii beaucoup!!!!!

  12. #12
    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
    Pour le header il faut en fait l'ajouter au coin qui va bien du JScrollPane via la méthode setCorner

    De quelle taille parle tu pour les cellules?
    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.

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 60
    Points : 49
    Points
    49
    Par défaut
    En fait, dans mon projet , ce que je fais c'est que j'implemente une methode statusTablePanel qui extend donc un JPane et celle ci creer ma mon scrollPane (definie dans une classe que j'ai cree pour mettre des marges..), ma JTable et tout et tout...
    apres je recupere des donnees via un fichier, je le convertie en xml et j'utilise une methode setContent pour remplir ma JTable.
    ( les codes ont ete fait par les mecs de la boite ou je viens de rentrer).

    Du coup je ne peux pas remplir ma seconde table directement, ce que je fais c'est que je pose un table2 = new JTable(tableModel) et ensuite je supprime les colonnes qui ne m'interesse pas. Mais ma deuxieme table ( contenant ma premiere colonne) a une taille de cellule beaucoup trop grande pour son contenu et plus petite (en hauteur que la taille des cellules de la table principale).... et vu que c'est le scrollPane qui definie la taille de la premiere table et j'utilise simplement ce scrollPane pour faire un tableScroll.setRowHeaderView(table2) ...

    De plus je ne vois pas ce que je dois utiliser en tant que deuxieme attribut de la methode setCorner()...

    J'espere avoir ete clair.
    Merci a vous d'essayer de m'aider!
    ( desole pour les accents je viens d'arriver dans une boite allemande et je bosse donc avec un clavier QWERTY).
    Amicalement,

  14. #14
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    Mais ma deuxieme table ( contenant ma premiere colonne) a une taille de cellule beaucoup trop grande pour son contenu
    Même problème chez moi : si je pose maTableTitres dans le rowHeader la partie rowHeader est beaucoup trop large....
    Comment modifier la largeur du rowHeader (si c'est la solution ) ?

    En attendant, j'ai trouvé ( merci forum ! ) un exemple utilisant une liste de labels au lieu d'une colonne de table pour le rowHeader :

    le renderer

    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
     
    class RowHeaderRenderer extends JLabel implements ListCellRenderer {             // le renderer
        RowHeaderRenderer(JTable table) {
            JTableHeader header = table.getTableHeader();
            setOpaque(true);
            setBorder(UIManager.getBorder("TableHeader.cellBorder"));
            setHorizontalAlignment(CENTER);
            setForeground(header.getForeground());    // ou table.getForeground()
            setBackground(header.getBackground());
            setFont(header.getFont());
        }
        @Override
        public Component getListCellRendererComponent(JList list, Object value,
                                int index, boolean isSelected, boolean cellHasFocus) {
            setText((value == null) ? "" : value.toString());        
            return this;
        }
    }
    et le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       String headers[] = { "abbbbbb", "b", "c", "d", "e", "f", "g", "h", "i" };
       JList rowHeader = new JList();
       rowHeader.setListData(headers);
       rowHeader.setFixedCellWidth(100);
       rowHeader.setFixedCellHeight(jTableDonnees.getRowHeight());
       rowHeader.setCellRenderer(new RowHeaderRenderer(jTableDonnees));
       jScrollPaneDonnees.setRowHeaderView(rowHeader);
       jTableDonnees.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);   // au besoin
    là, je peux régler la largeur avec .setFixedCellWidth();
    qu'en pensez-vous ?

Discussions similaires

  1. Methode de Tri pour une JTable
    Par Baboulinet_ dans le forum Composants
    Réponses: 6
    Dernier message: 20/10/2011, 14h11
  2. CellEditor de Double pour une JTable
    Par jacques64 dans le forum Débuter
    Réponses: 9
    Dernier message: 24/08/2010, 09h57
  3. Fusion de cellules pour une JTABLE
    Par niggaz972 dans le forum Composants
    Réponses: 10
    Dernier message: 30/07/2009, 17h13
  4. ArrayList ou Tableau pour une JTable
    Par bandit_debutant dans le forum Composants
    Réponses: 2
    Dernier message: 12/06/2008, 12h28
  5. Besoin d'aide pour une jTable
    Par Sh4dounet dans le forum Composants
    Réponses: 2
    Dernier message: 13/03/2007, 17h23

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