begin process at 2010 02 10 14:40:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Aide et documentation

 > 

Ne pouvoir instancier une classe qu'une seule fois


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ne pouvoir instancier une classe qu'une seule fois

lundi 20 avril 2009 à 11:55:01 | Ne pouvoir instancier une classe qu'une seule fois

abderrahman86

Bonjour ,

On est en train de développer une application Windows en java dont j'ai crée une classe qui nous permettrons la gestion d'accès aux images.

Ma question c'est comment faire pour n'instancier cette classe qu'une seule fois ?

J'ai googlé et j'ai trouvé qu'il faut utiliser le Desing Pattern Singleton.


Voici le code de ma classe:

public
class maClasse{
      
public static final String IMAGE_AJOUTER = "/ajouter.png" ;
}

instanciation de ma classe:

addButton.setIcon(new ImageIcon(getClass().getResource(maClasse.IMAGE_AJOUTER)));

Cordialement



lundi 20 avril 2009 à 12:04:31 | Re : Ne pouvoir instancier une classe qu'une seule fois

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

Ce que tu fais là n'a rien d'un singleton il s'agit juste de déclarer une constante publique !

Voici un singleton :

public class Singleton() {

protected static instance;

private Singleton() {
}

public static Singleton getInstance() {

  if (instance == null) {
    instance = new Singleton();
  }
  return Singleton;

}

}

Et pour "instancier" ta classe :
Singleton classeUnique = Singleton.getInstance();

Et pour tester :
Singleton classeUnique2 = Singleton.getInstance();
System.out.println(classeUnique == classeUnique2); // les deux objets pointent sur la même instance de classe.
lundi 20 avril 2009 à 12:22:06 | Re : Ne pouvoir instancier une classe qu'une seule fois

abderrahman86

Salut,

Merci pour la réponse 

Oui moi je n'ai pas utilisé le Singleton.

Le problème se pose dans ce bout de code

 addButton.setIcon(new ImageIcon(getClass().getResource(maClasse.IMAGE_AJOUTER)));

Il est utilisé dans pas mal de classe, a cahque fois en crée un new ImageIcon(getClass().getResource(maClasse.IMAGE_AJOUTER)).

Est qu'il y a une solution ?

 

lundi 20 avril 2009 à 12:30:14 | Re : Ne pouvoir instancier une classe qu'une seule fois

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Et bien avec ta solution de l'image stockée en constante :
Au lieu de :
public class maClasse{
       public static final String IMAGE_AJOUTER = "/ajouter.png" ;
}

fais :
public class maClasse{
       public static final Image IMAGE_AJOUTER = new ImageIcon(getClass().getResource(maClasse.IMAGE_AJOUTER));
}

addButton.setIcon(maClasse.IMAGE_AJOUTER);
lundi 20 avril 2009 à 17:43:22 | Re : Ne pouvoir instancier une classe qu'une seule fois

abderrahman86

Réponse acceptée !

bonjour
voci la solution qu'on implimenté:

privatestatic Map<String, ImageIcon> imgIc;

public static ImageIcon img(String image) {

if ( imgIc == null ) {

imgIc = new HashMap<String, ImageIcon>();

}

ImageIcon imgi=

imgIconsMap .get(image);

if (imgi== null ) {

imgi=

new ImageIcon(maClasse. class .getResource(image));

imgIc .put(image, imgi);

}

return imgi ;

}

instanciation de maClasse:

bouton

.setIcon(maClasse.img(maClasse.IMAGE_AJOUTER
));

Merci bcp  DARKSIDIOUS.




Cette discussion est classée dans : public, ajouter, classe, seule, instancier


Répondre à ce message

Sujets en rapport avec ce message

Comment faire pour instancier une classe ?? [ par Kindasch ] Je voudrais instancier une classe avec des éléments d'une autre classe, et décharger cette ancienne classe Quelqu'un a une idée svp ?? euh ... méthodes/attributs de 2 classes [ par HFanny ] Bonjour à tous,j'ai une question bête (car je sais que j'ai déjà fait mais je ne me souviens plus comment) :J'ai 2 classes A et B, dans A je crée une utilisation classe MonPanneau [ par anisotrope ] Bonjour,j'ai ecrit une classe MonPanneau dans une classe Sp_souri :public class Sp_souri implements MouseListener, MouseMotionListener {MonPanneau pan JTable : afficher une Date [ par isako ] Bonjour,Ce sujet n'est pas nouveau dans le forum, mais je n'ai pas trouvé la solution... Je vous soumets mon problème en espérant que l'un de vous pou Evènement en java [ par Deathmaker ] Tout d’abord, bonjour à vous tous ! Je vais vous expliquer mon problème en dessin, ça sera beaucoup plus compréhensible… Voilà ce que j’ai au dépa Graphics??? [ par Jean_Bob ] Bonjour, Voila mon probleme. J ai une classe "terrain" qui herite de Applet dans laquelle j y ai declare     public <span style="colo Problème ClassNotFoundException avec des jsp et tomcat [ par guitza87 ] Bonjour tout le monde !Voila je débute en jsp, et pour commencer j'ai voulu créer une classe "Principale" sous JBuilder avec des getter puis afficher Instancier une classe GL [ par FiReTiTi ] Bonjour, je souhaite instancier une classe GL gl = nex GL() ; Mais j'ai une erreur, je ne peux le faire que dans un contexte du style : public void d Problème avec 1 exo java en JDBC, réalisation d'une classe ArrayDB et interface DataBasable [ par kheops06 ] Je suis débutant en Java et je dois réaliser un exo en JDBC, et je n'y comprend pas grand chose. Je dois réaliser une classe (ArrayDB) et une interfac [Débutant] : Instancier une classe qui n'a pas de package... [ par Foub ] Bonjour, Dans une classe MainProgramme qui se trouve dans un package interface, je dois instancier une classe qui n'a aucun package. Je ne sais pas co


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales