[Java] Classes multiples limiter le nombre d'instances d'une classe

Classes multiples limiter le nombre d'instances d'une classe [Java] - Programmation

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.

Reply

Marsh Posté le 17-12-2001 à 14:24:55   

Reply

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 :D :D :D :D :D
 
désolé, demain j'arrete
Mogi.

Reply

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

Reply

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 :D :D :D :D :D
 
désolé, demain j'arrete
Mogi.  




Explique toi je vois pas de koi tu parles?

Reply

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+


---------------
What is popular is not always right, what is right is not always popular :D
Reply

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 :D
 
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.

Reply

Marsh Posté le 17-12-2001 à 17:14:53    

et ma solution ca marche pas???
 
LEGREG

Reply

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....  :D

Reply

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]

Reply

Marsh Posté le 17-12-2001 à 17:42:31    

Et ma question alors devient comment garder le lien....  :D

Reply

Marsh Posté le 17-12-2001 à 17:42:31   

Reply

Marsh Posté le 17-12-2001 à 17:54:25    

Mystereetbouledegomme a écrit a écrit :

Et ma question alors devient comment garder le lien....  :D  




 
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.

Reply

Marsh Posté le 17-12-2001 à 17:55:07    

C'est aussi simple que ca
 

Code :
  1. class MaNouvelleFrame extends Frame {
  2.    Frame maPremierFrame;
  3.    public MaNouvelleFrame(Frame _maPremiereFrame) {
  4.       maPremiereFrame = _maPremiereFrame;
  5.    }
  6. }


 
et au moment d'appeler .hide()
sur ta nouvelle frame
tu appeles .show() sur la reference a maPremiereFrame..
 
LEGREG

Reply

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...  
 :D

Reply

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]


---------------
Pipiru piru piru pipiru pi
Reply

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....  :D  




 
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 :D


---------------
What is popular is not always right, what is right is not always popular :D
Reply

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...  
 :D  




 
Référence "=" pointeur en Java. J'ai bien dit "=" ou ~= si tu préfères :D


---------------
What is popular is not always right, what is right is not always popular :D
Reply

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 ! ;)

Reply

Marsh Posté le 17-12-2001 à 21:32:08    

benou a écrit a écrit :

 
 
pfff .... tu connais pas ton bonheur ! ;)  




 
hi hi  :hello:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Sujets relatifs:

Leave a Replay

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