Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2818 connectés 

 


Dernière réponse
Sujet : [Java] Classes multiples limiter le nombre d'instances d'une classe
darklord22

benou a écrit a écrit :

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




 
hi hi  :hello:


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
darklord22

benou a écrit a écrit :

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




 
hi hi  :hello:

benou

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

darklord22

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

darklord22

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

n0mad

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]

mystereetbouledegomme 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
LeGreg 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

mogi

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.

mystereetbouledegomme Et ma question alors devient comment garder le lien....  :D
LeGreg 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]

mystereetbouledegomme 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
LeGreg et ma solution ca marche pas???
 
LEGREG
mogi

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.

darklord22

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+

mystereetbouledegomme

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?

LeGreg ben apres avoir cache ta fenetre
tu fais un setvisible(true) quand tu veux qu'elle reapparaisse
 
LEGREG
mogi 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.
mystereetbouledegomme 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.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)