[resolu] Evenements sur JTables contenues dans des onglets....

Evenements sur JTables contenues dans des onglets.... [resolu] - Java - Programmation

Marsh Posté le 10-05-2004 à 20:50:50    

J'ai un carnet d'adresse qui est géré de la façon suivante :
- un onglet "Carnet" qui contient des informations relatives au carnet (type, nom)
- un onglet "Rubriques" qui contient toutes les rubriques d'un carnet
- un onglet "Entrées" qui contient les entrées (personnes physique ou morale) relatives à une rubrique donnée du carnet.
- un onglet "Recherche"...
 
Mon problème, c'est que je n'arrive pas à récupérer la rubrique actuellement sélectionnée pour afficher les entrées de cette rubrique... :(
 
Comment faire ?
 
Petite précision sur la structure de mes classes :
- 1 classe OngletRubriques qui hérite de JPanel et qui contient la JTable des rubriques,
- 1 classe OngletEntrees qui hérite de JPanel et qui contient la JTable des entrees,
- 1 classe Fenetre qui hérite de JFrame et qui contient les 2 JPanels (+ les 2 autres JPanel pour l'onglet Carnet et l'onglet Recherche bien sur)
 
Voila, si qqun voit comment je pourrai récupérer la ligne sélectionnée dans la JTable des rubriques pour afficher les entrées correspondantes dans la JTable des entrées, je le remercie..  :jap:
 
edit : on m'a proposé de récuperer l'objet JPanel représentant l'onglet rubriques et de le passer en paramètre du constructeur de l'onglet entrées. C'est une solution mais j'ai l'impression que ça ne marchera pas (j'ai essayé de le mettre en oeuvre) car ça ira peut etre pour la rubrique sélectionnée a l'ouverture du carnet mais après si l'utilisateur clique sur une autre ligne, le changement ne sera pas pris en compte ?  :??:  
 
 :cry:


Message édité par RaTo le 16-05-2004 à 22:38:24
Reply

Marsh Posté le 10-05-2004 à 20:50:50   

Reply

Marsh Posté le 10-05-2004 à 22:01:17    

J'avoue que je n'ai pas lu ton problème en entier mais ça ressemble à une absence de classe controleur. Tu lui passe en entrée les différentes classes de ton projet qui doivent interargir et c'est elle qui reçoit les messages et demandes de renseignement sur les autres classes.

Reply

Marsh Posté le 11-05-2004 à 23:39:32    

seabee a écrit :

J'avoue que je n'ai pas lu ton problème en entier mais ça ressemble à une absence de classe controleur. Tu lui passe en entrée les différentes classes de ton projet qui doivent interargir et c'est elle qui reçoit les messages et demandes de renseignement sur les autres classes.


 
Je vois pas trop ce que tu veux dire...  :??:  
 
 :bounce:

Reply

Marsh Posté le 12-05-2004 à 00:48:02    

Hello,
 
J'ai pas vraiment le temps de chercher la méthode exacte, mais ce qu'il te faut c'est de gérér un évènement sur ta JTable dans l'onglet Rubriques
 
Lorsque tu clique sur une ligne, ca te remplit un objet ou des variables de la classe avec les informations que tu veux optenir (idRubrique ?)
et lorsque tu click sur Onglet
tu as plus qu'à faire ton affiche par rapport à l'id de la rubrique que tu as enregistrée.

Reply

Marsh Posté le 12-05-2004 à 10:16:24    

Si t'as pas le temps de revoire ton architecture :
 
getSelectedRow() sur JTable
 

Reply

Marsh Posté le 12-05-2004 à 20:06:04    

Bon j'ai créé la méthode suivante dans ma classe OngletRubriques :

Code :
  1. public String getRubSel() {
  2.     if (jt_rub.isRowSelected(jt_rub.getSelectedRow()))
  3.       return (String)jt_rub.getValueAt(jt_rub.getSelectedRow(),jt_rub.getSelectedColumn());
  4.     else
  5.       return null;
  6.   }


 
je récupère la valeur retournée dans un paramètre que j'ai ajouté dans le constructeur de la classe OngletEntrées mais ça ne fonctionne toujours pas...  :(  
 

Reply

Marsh Posté le 12-05-2004 à 20:39:56    

pascal34 a écrit :

Si t'as pas le temps de revoire ton architecture :
 
getSelectedRow() sur JTable


 
 
C'est bien cette méthode que je dois utiliser je pense, mais quel listener dois-je associer à la table pour rendre la ligne selectionné par un clic de souris ?

Reply

Marsh Posté le 13-05-2004 à 09:15:32    

RaTo a écrit :

C'est bien cette méthode que je dois utiliser je pense, mais quel listener dois-je associer à la table pour rendre la ligne selectionné par un clic de souris ?


 
Avec cette méthode : aucun.
Tu l'appelle direct quand t'as besoin de connaître la ligne sélectionnée.

Reply

Marsh Posté le 13-05-2004 à 09:34:53    

c'est quand même un peu n'importe quoi, même si ça marche..
Effectivement, pour bien faire, il te FAUT une classe contrôleur : son rôle, ça va être de centraliser toutes les données "utiles" autres que celles du carnet d'adresse, à savoir, en l'occurence, la rubrique courante. Ton contrôleur doit être complètement indépendant des vues (les panels) mais les panels doivent pouvoir modifier l'état du contrôleur (mettre à jour la rubrique courante, par exemple) et accéder à l'état de ses diférents attributs (récupérer le n° de la rubrique courante pour en afficher le contenu, ou pour faire des recherches dans la rubrique courante par défaut, par exemple.
 
Ca te permettrait nottament de modifier ton interface sans avoir beaucoup de choses à recoder. Imagine que tu changes d'avis, et que tu supprimes le paneau "rubriques" pour n'avoir qu'un panneau, avec une drop-down list des rubriques, et en dessous la liste des entrées de la rubrique selectionnée....Ben la modif serait beaucoup plus facile avec une bonne séparation vue/contrôleur.

Reply

Marsh Posté le 13-05-2004 à 10:44:53    

J'ai utilisé un JTable avec des éditeurs cellule suivant le type de la cellule.
Conclusion : le JTable, c'est l'enfer.
 
Même le JTree n'est pas qussi compliqué à utiliser...

Reply

Marsh Posté le 13-05-2004 à 10:44:53   

Reply

Marsh Posté le 13-05-2004 à 11:34:42    

Pascal : noooon!! Franchement, je suis pas d'accord!! JTable est une pure merveille de conception, à mon sens!! Evidement, ça demande pas mal de travail en amont pour explorer l'API, mais c'est super puissant, en y mettant de la bone volonté! :)  
Il n'en reste pas moins qu'au premier abord, sans avoir trop approfondi la doc, c'est velu!!

Reply

Marsh Posté le 13-05-2004 à 11:39:58    

[citation=724463,0,11][nom]Il n'en reste pas moins qu'au premier abord, sans avoir trop approfondi la doc, c'est velu!!
[/citation]
 
C'est tellement velu qu'il faut y aller à la machette !!!
 
sans compter qu'il ya des problèmes de focus avec les celleditors en combobox.
 
De façon générale, la conception de swing est bien. Je râle même qu'il n'y ai pas les mêmes choses dans d'autres languages

Reply

Marsh Posté le 13-05-2004 à 11:41:38    

Tiens, si ça t'intéresse, j'ai refait la JTable en AWT! :D

Reply

Marsh Posté le 13-05-2004 à 14:02:51    

La totale ?

Reply

Marsh Posté le 13-05-2004 à 14:05:30    

pas loin (si, en fait, loin!! :D:D Mais bon)
site.voila.fr/gfive


Message édité par gfive le 13-05-2004 à 14:05:46
Reply

Marsh Posté le 13-05-2004 à 17:28:52    

gfive a écrit :

pas loin (si, en fait, loin!! :D:D Mais bon)
site.voila.fr/gfive


 
t'es un furieux !!!

Reply

Marsh Posté le 13-05-2004 à 19:40:18    

bah, c'était pour le boulot! :) Enfin, j'étais pas obligé, mais j'avais envie! :p

Reply

Marsh Posté le 14-05-2004 à 09:10:31    

Même le truc avec les graphes ? ou c'était juste un sujet


Message édité par pascal34 le 14-05-2004 à 09:10:50
Reply

Marsh Posté le 14-05-2004 à 09:14:00    

Le truc avec les graphes, c'était mon projet de fin d'études.
Mais les graphes, c'est du Swing, hein.

Reply

Marsh Posté le 14-05-2004 à 09:38:29    

Tes pages sont HS !!!

Reply

Marsh Posté le 14-05-2004 à 09:41:08    

euuuh...ben je suis dessus, là présentement maintenant! :)
 
A moins que tu ne parles des liens vers les conneries vidéo?? Celles là, ouais, elles sont HS! :D J'ai pas touché à mon site depuis...voyons....un an?? :^


Message édité par gfive le 14-05-2004 à 09:42:22
Reply

Marsh Posté le 14-05-2004 à 10:03:44    

gfive a écrit :

euuuh...ben je suis dessus, là présentement maintenant! :)
 
A moins que tu ne parles des liens vers les conneries vidéo?? Celles là, ouais, elles sont HS! :D J'ai pas touché à mon site depuis...voyons....un an?? :^

chez moi ça marche
sympa ta classe GTable


---------------
http://runnerstats.net
Reply

Marsh Posté le 14-05-2004 à 10:48:35    

gfive a écrit :

euuuh...ben je suis dessus, là présentement maintenant! :)
 
A moins que tu ne parles des liens vers les conneries vidéo?? Celles là, ouais, elles sont HS! :D J'ai pas touché à mon site depuis...voyons....un an?? :^


 
Le comment explique le pourquoi  :D

Reply

Marsh Posté le 14-05-2004 à 10:51:55    

Le pourquoi j'ai pas touché à mon site???  
beuuuh, j'ai changé de taf, donc pas recodé de Java depuis novembre, donc rien de nouveau  mettre, et j'ai pas eu de photos à mettre dessus depuis ce temps là : on utilise un ftp pour se les échanger.....Mais pkoi tu me poses ces questions, euuh???


Message édité par gfive le 14-05-2004 à 10:52:13
Reply

Marsh Posté le 14-05-2004 à 13:45:23    

gfive a écrit :

Le pourquoi j'ai pas touché à mon site???  
beuuuh, j'ai changé de taf, donc pas recodé de Java depuis novembre, donc rien de nouveau  mettre, et j'ai pas eu de photos à mettre dessus depuis ce temps là : on utilise un ftp pour se les échanger.....Mais pkoi tu me poses ces questions, euuh???


 
Non, que le site soit indisponible si tu travaille dessus  :jap:

Reply

Marsh Posté le 14-05-2004 à 13:46:37    

Ahhh!!! Nan, quand je disais "je suis dessus", c'est qu'il était affiché dans mon navigateur!:D
 
c'est à dire Firefox.


Message édité par gfive le 14-05-2004 à 13:47:02
Reply

Marsh Posté le 16-05-2004 à 19:23:26    

[citation=725982,0,26][nom]gfive a écrit[/nom
c'est à dire Firefox.
[/citation]
 
Tout pareil, mais j'ai eu un message comme quoi le cota de téléchargement pour la journée était dépassé et que le site serait réactivé dès le lendemain !!!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed