Classes multiples limiter le nombre d'instances d'une classe [Java] - Programmation
Marsh Posté le 17-12-2001 à 15:30:30
euh, rien que pour rigoler :
un attribut de classe que tu testes dans le constructeur ?
désolé, demain j'arrete
Mogi.
Marsh Posté le 17-12-2001 à 15:42:22
ben apres avoir cache ta fenetre
tu fais un setvisible(true) quand tu veux qu'elle reapparaisse
LEGREG
Marsh Posté le 17-12-2001 à 16:15:02
mogi a écrit a écrit : euh, rien que pour rigoler : un attribut de classe que tu testes dans le constructeur ? désolé, demain j'arrete Mogi. |
Explique toi je vois pas de koi tu parles?
Marsh Posté le 17-12-2001 à 16:56:47
Mystereetbouledegomme a écrit a écrit : Hello j'ai un petit probleme. Jai une premiere classe definissant une Frame. Ensuite apres avoir cliquer sur un certains buton j'appelle une seconde classe qui hide la fenetre initial. Enfin je voudrais que lorsqu'on ferme la fenetre la premiere frame re-apparaisse. Celle la et pas unnouvelle instance de cette classe. qq un peut m'aider merci. |
Il faut que tu gardes une référence de ta première frame lorsque tu appelles la nouvelle. Ainsi lorsque tu détruis la deuxième fenetre, tu peux rendre le focus à la première en utilisant sa référence.
A+
Marsh Posté le 17-12-2001 à 17:04:37
Mystereetbouledegomme a écrit a écrit : Explique toi je vois pas de koi tu parles? |
ben, je ne m'y connais pas des masses en Java (c'est pourquoi j'avais mis "pour rigoler" )...
'pis en relisant ta question, je ne vois pas bien le rapport avec la limitation du nombre d'instances d'une classe
sinon, il y a moyen avec les "variables de classes" (je ne sais pas si c'est le bon terme en Java) qui sont comme des variables globales de classes. Tu peux donc mettre un compteur et tester ce compteur dans le constructeur
tu peux aussi aller voir à l'URI suivante :
http://www.javaworld.com/javaworld [...] leton.html
ils font une classe qui a au maximum 5 instances...
Mogi.
Marsh Posté le 17-12-2001 à 17:35:09
Je vais essayer de reexpliquer car ca ne doit pas etre tres clair.
Dans ma premiere classe je donne le controle a une autre frame.
this.hide();//classe frame1
manouvelle_frame.show();
Ensuite ds manouvelle_frame Je dois faire un frame1.show mais j'aimerais qu ce soit la meme frame1 que celle qui est cachee donc si je fais un
alpha=new(frame1);
alpha.show(); ben ca marchera pas parce que se sera pas la meme frame et donc si je pouvais limiter le nbre d'instances....
Marsh Posté le 17-12-2001 à 17:38:27
ben ce qu'on tente de t'expliquer
c'est qu'a la place de faire show
sur une new frame()
tu le fais sur l'ancienne frame !
(celle sur laquelle tu as appele le hide !)
c'est a dire qu'il faut conserver
quelque part un lien vers la frame de depart
pour pouvoir faire un .show()
dessus
LEGREG
[edtdd]--Message édité par legreg--[/edtdd]
Marsh Posté le 17-12-2001 à 17:54:25
Mystereetbouledegomme a écrit a écrit : Et ma question alors devient comment garder le lien.... |
tout plein de solutions facile, par exemple, au lien de faire "manouvelle_frame.show()", tu appelles une méthode (allez, appelons-la "prend_la_main" ) qui prend en paramètre la frame à qui il doit rendre la main :
manouvelle_frame.prend_la_main(this)
j'ai bon ce coup-ci ou j'suis encore à coté de la plaque ?
Mogi.
Marsh Posté le 17-12-2001 à 17:55:07
C'est aussi simple que ca
Code :
|
et au moment d'appeler .hide()
sur ta nouvelle frame
tu appeles .show() sur la reference a maPremiereFrame..
LEGREG
Marsh Posté le 17-12-2001 à 17:57:07
je suis vraiment un gland suffisait d'y penser. enfin ca doit etre le Java jai horeur de ca et cest la premiere que j'en fais...
Ok merci ceci dit je sais qu'en C++ c'etait faisable avec des pointeurs la non instantiaton d'une classe mais je sais plus du tout comment...
Marsh Posté le 17-12-2001 à 19:02:03
Mystereetbouledegomme a écrit a écrit : Hello j'ai un petit probleme. Jai une premiere classe definissant une Frame. Ensuite apres avoir cliquer sur un certains buton j'appelle une seconde classe qui hide la fenetre initial. Enfin je voudrais que lorsqu'on ferme la fenetre la premiere frame re-apparaisse. Celle la et pas unnouvelle instance de cette classe. qq un peut m'aider merci. |
En somme, pour info, tu es en train de réinventer le design pattern du singleton :
Il te faut, en simplifié :
* Constructeur protégé
* variable membre statique contenant une reference sur l'unique instance
* methode statique qui renvoie l'unique instance ou la créé au besoin.
[edtdd]--Message édité par n0mad--[/edtdd]
Marsh Posté le 17-12-2001 à 20:29:15
Mystereetbouledegomme a écrit a écrit : Je vais essayer de reexpliquer car ca ne doit pas etre tres clair. Dans ma premiere classe je donne le controle a une autre frame. this.hide();//classe frame1 manouvelle_frame.show(); Ensuite ds manouvelle_frame Je dois faire un frame1.show mais j'aimerais qu ce soit la meme frame1 que celle qui est cachee donc si je fais un alpha=new(frame1); alpha.show(); ben ca marchera pas parce que se sera pas la meme frame et donc si je pouvais limiter le nbre d'instances.... |
Je veux pas être méchant mais ça fait trois plombes que je t'ai donné la solution ... Si tu lisais un peu les posts. Et by the way, le nom du topic n'a strictement RIEN à voir avec ton problème
Marsh Posté le 17-12-2001 à 20:29:57
Mystereetbouledegomme a écrit a écrit : je suis vraiment un gland suffisait d'y penser. enfin ca doit etre le Java jai horeur de ca et cest la premiere que j'en fais... Ok merci ceci dit je sais qu'en C++ c'etait faisable avec des pointeurs la non instantiaton d'une classe mais je sais plus du tout comment... |
Référence "=" pointeur en Java. J'ai bien dit "=" ou ~= si tu préfères
Marsh Posté le 17-12-2001 à 20:52:54
Mystereetbouledegomme a écrit a écrit : enfin ca doit etre le Java jai horeur de ca et cest la premiere que j'en fais... |
pfff .... tu connais pas ton bonheur !
Marsh Posté le 17-12-2001 à 21:32:08
benou a écrit a écrit : pfff .... tu connais pas ton bonheur ! |
hi hi
Marsh Posté le 17-12-2001 à 14:24:55
Hello j'ai un petit probleme. Jai une premiere classe definissant une Frame. Ensuite apres avoir cliquer sur un certains buton j'appelle une seconde classe qui hide la fenetre initial.
Enfin je voudrais que lorsqu'on ferme la fenetre la premiere frame re-apparaisse. Celle la et pas unnouvelle instance de cette classe. qq un peut m'aider merci.