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

Signaler
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
-
Messages postés
35
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2016
-
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

Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
13
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
Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
13
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()));
}
}
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
1
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
Messages postés
152
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
8 octobre 2008
1
Magnifique... j'avais tenté toutes les methodes commencant pas "Set..." pas suffisament cherché
Messages postés
124
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2009
13
Oui moi aussi j'ai beaucoup trifouillé avant de trouver... pas simple quand on cherche avec set ;-)
Messages postés
35
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
24 octobre 2016

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???