JTable ... Selection de ligne et de colonne. [Résolu]

omcougar 152 Messages postés mardi 4 mai 2004Date d'inscription 8 octobre 2008 Dernière intervention - 19 sept. 2006 à 10:23 - Dernière réponse : KeTZaLDeV 35 Messages postés mercredi 5 octobre 2005Date d'inscription 24 octobre 2016 Dernière intervention
- 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
Afficher la suite 

6 réponses

Répondre au sujet
cs_vychnou 124 Messages postés dimanche 5 octobre 2003Date d'inscription 11 mai 2009 Dernière intervention - 19 sept. 2006 à 18:12
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_vychnou
cs_vychnou 124 Messages postés dimanche 5 octobre 2003Date d'inscription 11 mai 2009 Dernière intervention - 19 sept. 2006 à 11:16
0
Utile
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()));
}
}
Commenter la réponse de cs_vychnou
omcougar 152 Messages postés mardi 4 mai 2004Date d'inscription 8 octobre 2008 Dernière intervention - 19 sept. 2006 à 17:49
0
Utile
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
Commenter la réponse de omcougar
omcougar 152 Messages postés mardi 4 mai 2004Date d'inscription 8 octobre 2008 Dernière intervention - 20 sept. 2006 à 10:33
0
Utile
Magnifique... j'avais tenté toutes les methodes commencant pas "Set..." pas suffisament cherché
Commenter la réponse de omcougar
cs_vychnou 124 Messages postés dimanche 5 octobre 2003Date d'inscription 11 mai 2009 Dernière intervention - 20 sept. 2006 à 13:36
0
Utile
Oui moi aussi j'ai beaucoup trifouillé avant de trouver... pas simple quand on cherche avec set ;-)
Commenter la réponse de cs_vychnou
KeTZaLDeV 35 Messages postés mercredi 5 octobre 2005Date d'inscription 24 octobre 2016 Dernière intervention - 15 nov. 2007 à 18:02
0
Utile
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???
Commenter la réponse de KeTZaLDeV

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.