abderrahman86
Messages postés24Date d'inscriptionvendredi 20 janvier 2006StatutMembreDernière intervention 5 mai 2009
-
20 avril 2009 à 11:55
abderrahman86
Messages postés24Date d'inscriptionvendredi 20 janvier 2006StatutMembreDernière intervention 5 mai 2009
-
20 avril 2009 à 17:43
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.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
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)));
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 20 avril 2009 à 12:04
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.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 20 avril 2009 à 12:30
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));
}