|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Salut tous le monde : )
dans mon projet j'ai une Jframe dans laquelle on saisi 3 données (filière ,level,year ) lorsque je clique sur OK et selon ces 3données saisies , on affiche une Jtable qui contient la liste correspondante jusqu'ici c'est bon mon problème c'est que lorsque je clique pour la première fois sur ok je vois bien ma jtable affichée ,et lorsque je clique pour la deuxieme fois je vois bien une nouvelle liste affichée(qui corresponde aux 3données saisies) mais lorsque je sélectionne une ligne ,je vois apparaitre une ligne de la liste précédente (cette liste n'existe plus normalement) avec l'erreur suivante : Code :
je ne sais pas à quoi ça est dû , votre aide s'il vous plait ,je suis bloqué |
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : juillet 2012 Messages : 35 ![]() |
Bonjour.
Pourrais-tu montrer le code exécuté lors du clic sur le bouton? Ainsi il sera plus facile de t'aider. En général, une exception de type ArrayIndexOutOfBoundException survient lorsqu'on essaie d'accéder à un élément d'un tableau, d'une combo ou d'une liste et que l'indice utilisé est en dehors des limites valides. |
|
|
00
|
|
|
#3 | ||||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Merci beaucoup ,
voici mon code dans le constructeur de la classe UIEtudiant j'ai mis ça : Code :
Code :
Merci |
||||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2004 Messages : 8 633 ![]() |
Bonjour,
A quelle ligne exacte survient cette exception. Merci de nous mettre également à disposition la stacktrace complète de l'exception.
__________________
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. |
|
|
00
|
|
|
#5 | ||||||||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Salut , je vous remercie premièrement
je rappelle que dans ma JFrame il y a deux parties : 1ere Partie Saisie : là je saisie les 3donneées : filiere , niveau ,année d'etude. 2eme Partie Affichage du resultats sous forme de Jtable associé au model. voici l'erreur : Code :
voici un senario que j'ai testé : 1erement mon jtable affiche 2 enregistrements (lignes) . ensuite j'envoie une requête qui affiche 1 ligne mais le probleme c'est quant je clique, la premiere liste revient °O voici le resultat complet sur la console Code :
voici ma classe UIEtudiant Code :
Code :
|
||||||||
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
rowSelected vaut alors -1 et forcément, dur dur e récupérer l'étudiant -1.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|||
|
|
20
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
je vais mettre ce bloc dans une condition if . |
|
|
00
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
normalement l'index -1 n'apparait que pendant la deuxieme recherche
et lorsque je lance une 2eme recherche le resultat s'interfére avec la liste du 1er resultat je ne sais pas la raison cette alternance en row count , normalement la tableModel est une bonne facon de faire les choses ,mais apparemment je pense que c'est lui qui cause tous ça . Code :
|
||
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
pour etre plus clair voici en jointes des captures pour mon probleme
je resume : pour la 1ere recherche tous passe bien pour la 2eme recherche je vois affiché le resultat,mais lorsque je selectionne par exemple la 1ere ligne ,je vois apparaitre la ligne de la liste précédente et c'est à cet instant que l'index vaut -1 . je vous remercie |
|
|
00
|
|
|
#10 | |||
|
Expert Confirmé Sénior
![]() ![]() |
Non, il apparait simplement quand tu passe dans ton mouselistener (ce qui peux avoir lieu n'importe quand) alors qu'aucun item n'est sélectionné dans la liste.
Citation:
Code :
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|||
|
|
10
|
|
|
#11 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
voilà merci beaucoup tchize_
pour le modelEtudiant normalement il est declaré global Code :
|
||
|
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Salut
j'ai declaré la tableModel ainsi que la JTable en locale dans la classe interne ButtonListener ensuite je les passe en parametres à la classe intenr e Mousse listner ,à ce stade j'ai plus l'erreur d'index ( -1 ) , pourtant j'ai toujours le probleme d'affichage des deux listes ,SVP comment faire pour effacer le premier modele ? Merci d'avance . |
|
|
00
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() ![]() |
Ton modèle est lié à une JTable, tant que cette JTable est visible, le modèle sera utilisé. Quand la JTable sera retirée des composant de la fenêtre, qu'on lui attribuera une nouveau modèle ou quand la Fenetre qui la contient sera dispose(), alors le modèle ne sera plus utilisé.
Ce que tu ne fais pas dans ton code, puisque tu te content à chaque click d'ajouter un panel_1 supplémentaire à la fenêtre, qui contient la table. Et encore une fois, ça n'a rien à voir avec ton problème, ton problème c'est que tu ne traite pas le cas où aucune ligne n'est sélectionnée
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
10
|
|
|
#14 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Merci beaucoup pour ces explications ,mais dans mon cas le model depond de 3 paramètre donc il doit normalement se mettre à jour dependemment de ces troix parametres.
pour le cas ou aucune ligne n'est selectionnée j'ai un bloc if Code :
j'ai declaré le panel_1 global ,mais ça n'a rien donnée . franchement je ne m'attendais pas à ce que Swing soit aussi méchant que ça |
||
|
|
00
|
|
|
#15 | |||
|
Expert Confirmé Sénior
![]() ![]() |
Citation:
Citation:
Citation:
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|||
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Merci beaucoup tchize_ , je verai ça à tête reposée.sinon il y a une alternative qui consiste sur la creation d'une nouvelle jframe à chaque recherche.mais moi j'aurai aimé travailler sur la même jframe (saisie + affichage du resultat)
|
|
|
00
|
|
|
#17 |
|
Expert Confirmé Sénior
![]() ![]() |
Et bien, dans ce cas soit tu travaille sur une seul Model que tu modifie (en faisant attention à bien appeler les différents eventsHandler quand tu change le contenu), soit tu appelle plusieurs fois setModel() soit tu vire l'ancien panneau avant de placer le nouveau
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
10
|
|
|
#18 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Bonjour
pour la possibilté de changer de panel ,dans mon code actuel j'ai associé au boutton 'OK' l'instanciation d'un nouveau panel vioci la classe interne : Code :
Merci |
||
|
|
00
|
|
|
#19 |
|
Expert Confirmé Sénior
![]() ![]() |
Pour changer le panel, faut déjà retirer l'ancien du contentPane (méthode remove)
Pour le setModel, au lieu de créer un nouveau panel contenant une JTable, suffit de juste crée run nouveau modèle et appeler taTable.setModel(leNouveauModel) Pour changer directement le contenu du model, faut ajouter sur ta classe Model des méthodes pour faire l'ajout / suppression / changement des éléments, et les appeler.
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et ![]() Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir. |
|
|
10
|
|
|
#20 | |||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juillet 2011 Messages : 82 ![]() |
Citation:
Citation:
Citation:
Merci . |
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com