retrouver le parent? [JAVA] - Java - Programmation
Marsh Posté le 30-09-2002 à 19:13:04
Slash- a écrit a écrit : Je m'explique : j'ai une classe qui fait tourner le prog (appelons la ClasseBase) qui extends Frame ensuite dans une de ses methodes, elle apelle une autre classe (une classe de threads) qui fait un certain travail dans cette classe de threads j'ai gere toutes les exceptions possibles des threads, jusque la tout est normal ensuite viens mon probleme, j'aimerais pouvoir afficher les exceptions quand elles surviennent dans une boite de dialogue, j'ai cree la classe pour, j'ai teste a part et elle fonctionne mon probleme c'est que le constructeur de ma boite de dialogue est le suivant : public MsgBox(Frame parent, String titre, String msg, boolean modal) et que je dois appeler ce constructeur dans ma classe de threads et donc je ne sais pas quoi mettre au premier argument, il faudrait une fonction qui me retrouve le parent quelqu'un peut m'aider? merci |
j ai pas tout compris mais tu peux mettre null a la place de parent ou alors tu donne une instance de parent ds le constructeur de ton thread
MyThread myThread = new MyThread(this);
this fait evidement référence a l'object ClasseBase...
Marsh Posté le 30-09-2002 à 22:13:15
Hm, je crois qu'il existe une methode GetTopLevelAncestor() qui te retournerait l'objet "ClasseBase", que tu n'aurais qu'a donner en temps que parametre
Marsh Posté le 01-10-2002 à 01:01:15
ben ta classe de "threads" ne devrait pas afficher elle meme le message
tu devrais (par exemple), avoir une methode DANS ta frame qui affiche cette boite, et tu pourrais appeler cette methode, en passant une reference de ta frame a ta classe qui fait tes machins
y'a plus propre mais j'ai la flemme de reflechir, au suivant.
Marsh Posté le 01-10-2002 à 02:50:36
--greg-- a écrit a écrit : ben ta classe de "threads" ne devrait pas afficher elle meme le message tu devrais (par exemple), avoir une methode DANS ta frame qui affiche cette boite, et tu pourrais appeler cette methode, en passant une reference de ta frame a ta classe qui fait tes machins y'a plus propre mais j'ai la flemme de reflechir, au suivant. |
tu me fait trop rire
Marsh Posté le 01-10-2002 à 09:00:26
Bin c'est une erreur de design. Tu dis que tu DOIS appeller ton constructeur depuis ta classe de threads mais c'est faux !!! Si l'information se trouve ailleurs c'est à cet endroit que l'instance doit etre crée.
Tu peux par exemple utiliser un système de listener ou tu préviens asynchronement d'un event. Et sur base de l'event tu peux faire ce que tu veux avec les bonnes informations, au bon endroit.
A+
Marsh Posté le 01-10-2002 à 11:17:24
si ton Thread a besoin du parent, il faut le lui donner ... en lui passant le parent, ou en lui passant un objet qui connait le parent en question et qui fera le boulot lorqsue le thread lui demandera.
Par exemple, ca pourrait ton ClassBase qui gère l'ouverture du msgBox (dans une méthode), et tu passes ton objet ClassBase au thread. Quand le thread a besoin d'afficher la msgbox, il demande à l'objet ClassBase de le faire
Marsh Posté le 01-10-2002 à 12:46:30
merci
j'ai resolu mon probleme, j'ai effectivement instancie la MsgBox dans la classe de base ce qui marche beaucoup mieux
Marsh Posté le 30-09-2002 à 19:08:26
Je m'explique :
j'ai une classe qui fait tourner le prog (appelons la ClasseBase) qui extends Frame
ensuite dans une de ses methodes, elle apelle une autre classe (une classe de threads) qui fait un certain travail
dans cette classe de threads j'ai gere toutes les exceptions possibles des threads, jusque la tout est normal
ensuite viens mon probleme, j'aimerais pouvoir afficher les exceptions quand elles surviennent dans une boite de dialogue, j'ai cree la classe pour, j'ai teste a part et elle fonctionne
mon probleme c'est que le constructeur de ma boite de dialogue est le suivant :
public MsgBox(Frame parent, String titre, String msg, boolean modal)
et que je dois appeler ce constructeur dans ma classe de threads et donc je ne sais pas quoi mettre au premier argument, il faudrait une fonction qui me retrouve le parent
quelqu'un peut m'aider?
merci