Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java > AWT/SWING > Composants > Tables
Tables JTable, JXTable, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/01/2013, 12h47   #1
superstarz
Invité régulier
 
Homme Fab McFly
Étudiant
Inscription : mai 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Fab McFly
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2010
Messages : 42
Points : 8
Points : 8
Par défaut [JTable] Problème Listener lors de la sélection d'une cellule

Bonjour,

Je suis entrain de developpez une sorte d'excel en java, cependant je suis face à un problème assez difficile à résoudre.
Je souhaite récupéré les valeurs des celules que je sélectionne, cela marche cependant lorsque je clique sur une celule, et que je clique sur une autre celule dans la même ligne l'évènement n'est pas pris en compte et je ne reçois rien, alors que si je fais la même choses en selectionnant entre les deux une celule d'une autre ligne je reçois bien les bonnes valeurs.

Je vois pas mal de posts avec ce probleme (du listSelectionListener), j'ai essayé aussi de faire une classe qui implémente listSelectionListener et MouseListener sans succes)

Je vous joint mon code qui récupère les valeurs dans la grille :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
ListSelectionModel cellSelectionModel = table.getSelectionModel();
		cellSelectionModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
		cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
 
			public void valueChanged(ListSelectionEvent e) {
				System.out.println(e.getValueIsAdjusting());
				if (e.getValueIsAdjusting()){
					return ;
				}else{
					//ArrayList<String> selectedData = new ArrayList<String>(); 
					String valeurRecup;
 
					int[] selectedRow = table.getSelectedRows();
					int[] selectedColumns = table.getSelectedColumns();
 
					for (int i = 0; i < selectedRow.length; i++) {
						for (int j = 0; j < selectedColumns.length; j++) {
							valeurRecup = (String) table.getValueAt(selectedRow[i], selectedColumns[j]);
							selectedData.add(valeurRecup);
							System.out.println("Select: "+ selectedData.get(i));
							selectedData.clear();
						}
 
					}
					for (int i=0;i<selectedData.size();i++){
						System.out.println("Select: "+ selectedData.get(i));
						selectedData.clear();
					}
					selectedData.clear();
				}
			}
 
		});
Merci d'avance.
superstarz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 16h05   #2
sinok
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 644
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 644
Points : 12 452
Points : 12 452
As tu bien défini les lignes et les colonnes comme sélectionnables (méthodes setRowSelectionAllowed et setColumnSelectionAllowed passées à true toutes les deux)?
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h59.


 
 
 
 
Partenaires

Hébergement Web