[JTable] Selectionner une cellule ! [Résolu]

Signaler
Messages postés
42
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
6 janvier 2005
-
Messages postés
42
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
6 janvier 2005
-
Bonjour à tous !

Voilà j'ai un problème qui peut paraître très bête et sur lequel je me prend pourtant bien la tête !

J'ai besoin pour mon application de pouvoir "customiser" assez radicalement le comportement du JTable. C'est à dire que je veux pouvoir faire du glisser/déplacer de lignes, et aussi faire de la selection de ligne via un bouton selecteur etc etc... Enfin bref j'ai du virer les MouseListeners que Sun avait placés sur le JTable, et je suis donc forcé de réecrire la plupart des comportements standards Nottamment la sélection/édition sur clic.

Mon problème vient de la sélection justement, j'ai beau chercher dans la doc, je ne trouve nulle part de méthode qui permette de selectionner une cellule...
Il y'a bien changeSelection(), mais ça ne marche que si une cellule est déjà selectionnée :-/

J'ai aussi essayé de retrouver le code du MouseListener que sun avait mis sur son JTable mais impossible de trouver où ils l'ont implementé...

Si quelqu'un pouvait m'aider à selectionner une cellule ce serait vraiment sympa parceque là ça fait des jours que je suis sur ce JTable et je commence vraiment à craquer...

Merci d'avance,

Thibaut

2 réponses

Messages postés
42
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
6 janvier 2005

Pourquoi ?

Parceque comme je l'ai dit j'ai besoin d'ajouter pas mal de choses à ce JTable, et si je rajoute mon MouseListener par dessus celui de Sun ça fait des choses vraiment crades car je peux pas agir sur le comportement déjà implementé. J'ai donc refait mon MouseListener et comme je suis pas si mauvais que ça j'ai finit par arriver à la selectionner cette cellule !

Pour ceux que ça interesse, il suffit de mettre setRowSelectionAllowed(true) et setColumnSelectionAllowed(true) pour que changeSelection() permette de seléctionner une cellule unique.

Et sinon, citation:

"On accède au modele de selection des lignes par
JTable.getSelectionModel() et pour le modele de sélection des colonnes, il faut passer par JTable.getColumnModel().getSelectionModel().
A partir de là, sélectionner une cellule (x,y) revient à selectionner la
colonne x et la ligne y."

Merci aussi à lui ;)

Oui bon je me répond à moi même et alors ? :-p
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

mais pourkoi enlever le comportement par defaut qui est tres confortable et convient tou a fait aux normes d utilisation en vigueur !!???!!

Autrement tu fai un mouselistener sur ta table tu calcule la position te ta souris ds la jtable et tu change l etat de la cellule dessouS... ;o) avec cette methode ca doi le faire
tatable.getSelectionModel().addSelectionInterval( 0,0 );
tu remplace les 0 par les valeurs trouver biensur... regarde aussi les autres methode de ListSelectionModel ou de DefaultListSelectionModel ca peut d aider ...

GL
++