JTable et sélections

Résolu
Signaler
Messages postés
51
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
26 mai 2007
-
Messages postés
51
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
26 mai 2007
-
Bonsoir à tous,

j'ai une JTable dont la 1ère colonne a pour valeur un Boolean de façon à afficher une checkbox.
Ce que je souhaiterais faire et que je n'arrive pas, c'est sélectionner toutes les lignes avec un CTRL+A puis cocher les CheckBox (mettre toutes les valeurs à true) avec une simple pression sur la touche [ESPACE].

J'ai bien:
maTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

Quand je selectionne 1 seule ligne et que j'appuie sur [ESPACE] tout la case se coche ou se décoche mais lorsque je selectionne plusieurs lignes, seule une se coche ou se décoche.

Merci d'avance

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Il se peut qu'une des lignes du JTable (celle où ca ne marche pas) soit en mode édition, et du coup, c'est le cellEditor qui est affiché, et non le CellRenderer.

Donc essaye avec ceci :
boolean valeur = true;
int[] selectedRows = jScrollSortedTablePane1.getTable().getSelectedRows();
maTable() .editingStopped(null);
for(int i = 0; i<selectedRows.length; i++)
{
            maTable().setValueAt(new Boolean(valeur), selectedRows[i], 0);
}

Tant fait pas, je pêterais pas un câble, mais je m'étonne qu'il y ai autant de monde d'un coup qui ont des problèmes sur les JTables !
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Utilise un KeyListener pour cocher toi même toutes les lignes...
Messages postés
44
Date d'inscription
lundi 23 janvier 2006
Statut
Membre
Dernière intervention
12 août 2007

Yep !
Sinon tu peux peut etre essayer de handle ItemStateChanged sur tes checkbox. Dès qu'une checkbox change d'état, tu fais en sorte que toutes les autres selectionnées changent aussi d'état en conséquence.
Messages postés
51
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
26 mai 2007
2
Tout d'abord, merci pour vos réponses.

Si ça continue DARKSIDIOUS va finir par pêter un plomb avec toutes ces questions sur les JTable mais j'ai encore un problème :
effectivement avec un KeyListener j'ai presque résolu le problème, mais voilà:

j'ai ma table, je fais un joli CTRL+A, une tapouille sur [ESPACE] et toutes les checkBox se cochent sauf 1 (généralement la 1ère) mais ça dépend de la façon dont est arrivé le focus. ça le fait aussi quand il y a eu des cases selectionnées à la souris.

Pourtant, le code n'a rien de spécial:

boolean valeur = true;
int[] selectedRows = jScrollSortedTablePane1.getTable().getSelectedRows();

for(int i = 0; i<selectedRows.length; i++)
{
            maTable().setValueAt(new Boolean(valeur), selectedRows[i], 0);
}
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Hummm ... un prof qui aurait eu l'idée de donner un devoir sur les JTables à ses élèves ... et les élèves qui squattent CodeS-SourceS en attendant. Ca c'est déjà vu

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

ce que je ne comprend pas c'est qu'il y a pleins de tutos superbement bien fait qui evitents ce genre de questions.

les JTables sont à la base avec les JTree les objets java les plus hard à manipuler mais honnetement avec la moultitude de doc dessus ils en deviennent super easy

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
51
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
26 mai 2007
2
Bonsoir à tous, alors tout d'abord merci DARKSIDIOUS tout est OK

Pour les mauvaises langues je peux dire qu'en ce qui me concerne en tout cas je ne suis pas un élève qui essaye de faire un devoir.

D'autre part, c'est vrai qu'en Java on trouve plein de tuto super bien fait, et pas que pour le JTable, le problème pour moi c'est justement qu'il y en a trop et que tous ceux sur lesquels je suis tombé étaient en anglais et là je bloque un peu.

A part ça c'est pas mal aussi de lire des réponses au cas par cas car on se concentre plus je trouve.

Bonne soirée à tous et encore merci à ceux qui m'ont aidé à m'en dépatouiller