JTable ... Selection de ligne et de colonne.

Résolu
omcougar Messages postés 152 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 8 octobre 2008 - 19 sept. 2006 à 10:23
KeTZaLDeV Messages postés 35 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 24 octobre 2016 - 15 nov. 2007 à 18:02
Bonjour,

Ces forums associés aux exemples utilisant des JTables sur ce site m'ont permis de progresser très rapidement dans leur utilisation. mais je cherche toujours à ajouter quelques fonctions ...

1/ la premier est de pouvoir selectionner une ligne par le prog (pas en cliquant dessus) ... ca me servira lors d'un reclassement par exemple à deplacer la selection pour qu'elle suive les infos précédement selectionées...
En gros c'est linverse de MyTable.getSelectedRow( )

Et ressemblerait à MyTable.setSelectedRow(int _row)

2/ la seconde fonction consiste a cliquer sur l'entete d'une colonne pour déclecher une action... un tri en l'occurence (je sais faire le tri :) ) pour l'instant mes entetes de colonnes ne sont pas cliquables.

Merci

6 réponses

cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
19 sept. 2006 à 18:12
Excuse moi, la bonne méthode est:
table.changeSelection (rowIndex,columnIndex, false, false);
Pour les 2 derniers booleens, renseigne toi sur leurs effets.
A bientôt
3
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
19 sept. 2006 à 11:16
Pour selectionner une ligne, tu as:
table.setEditingRow (rowIndex);
et
table.editCellAt (rowIndex,columnIndex);

Maintenant je ne suis pas sur du fonctionnement de ces méthodes puisqu'elles sont sensées éditer et non pas selectionner... à toi de voir je suppose que tu les connaissais déja.

Pour ce qui est de savoir quand l'utilisateur a cliqué sur le titre d'une colonne, j'utilise cette méthode, peut-être y en a t'il des meilleures vu que la je fais un calcul de coordonnées pour trouver la colonne, mais celle-ci a l'avantage de rester assez simple:

unobjet d'une de tes classes qui "implements MouseListener"

quelque part tu as:
tatable.getTableHeader().addMouseListener(unobjet);

Enfin, dans la classe d'unobjet, tu as la méthode:

public void mouseClicked(MouseEvent e) {
// si l'on a cliqué sur le header du tableau
if (e.getSource()==getTableHeader()){
// on trouve sur quelle colonne on a cliqué et l'on classe suivant cette colonne
classerColonne(getTableHeader().columnAtPoint(e.getPoint()));
}
}
0
omcougar Messages postés 152 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 8 octobre 2008 1
19 sept. 2006 à 17:49
Les deux premiers ne fonctionnent pas






MyTable
.setEditingRow(2);


MyTable
.setEditingColumn(1);

MyTable.editCellAt (2,1);
fonctionne mais ce n'est pas ce que je cherche à faire, ca permet d'editer la case mais ne mets pas en surbrillance la ligne selctionnée... je galere
0
omcougar Messages postés 152 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 8 octobre 2008 1
20 sept. 2006 à 10:33
Magnifique... j'avais tenté toutes les methodes commencant pas "Set..." pas suffisament cherché
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 17
20 sept. 2006 à 13:36
Oui moi aussi j'ai beaucoup trifouillé avant de trouver... pas simple quand on cherche avec set ;-)
0
KeTZaLDeV Messages postés 35 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 24 octobre 2016
15 nov. 2007 à 18:02
J'ai un soucis avec le JTable...

En fait, je voudrais seulement sélectionner une ligne, mais a chaque fois que je clique sur la ligne, il me selectionne aussi la cellule (enfin, il me un cadre rectangulaire sur la cellule) Je voudrais juste sélectionner la ligne, parce que dans mon programme, seule une ligne signifie quelque chose, ensuite, qu'on se balade sur les cellule a droite et a gauche de la ligne ne sert a rien, et je trouve cela pas tres beau...

une idée???
0