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
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
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 .
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...
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.
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 ...)
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.
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
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 )
...à voir si ça le fait !
Code : Sélectionner tout - Visualiser dans une fenêtre à part myScrollPane.setRowHeaderView(maDeuxiemeTable);
bonne chance.
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..
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.
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!!!!!
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.
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,
Même problème chez moi : si je pose maTableTitres dans le rowHeader la partie rowHeader est beaucoup trop large....Mais ma deuxieme table ( contenant ma premiere colonne) a une taille de cellule beaucoup trop grande pour son contenu
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
et 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
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; } }
là, je peux régler la largeur avec .setFixedCellWidth();
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
qu'en pensez-vous ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager