Lister les attributs d'une classe [Résolu]

crackinett_boy 12 Messages postés jeudi 19 février 2004Date d'inscription 4 août 2009 Dernière intervention - 29 mai 2008 à 09:40 - Dernière réponse : crackinett_boy 12 Messages postés jeudi 19 février 2004Date d'inscription 4 août 2009 Dernière intervention
- 29 mai 2008 à 10:45
Bonjour à tous !

Je développe une applet en java et j'ai une interface qui permet d'éditer un fichier de config ... bref rien de très complexe.
Ceci dit, j'aimerais créer un bouton permettant de réinitialiser l'IHM, et pour ce faire, je dois remettre une grande partie de mes attributs à null.

Je voulais donc savoir si quelqu'un avait déjà utilisé une méthode du style myClass.getAttributes() ?.
Ils parlent chez Sun d'une classe Attributes mais j'avoue ne pas trop comprendre

Merci d'avoir pris le temps de me lire

Pantouflard
Afficher la suite 

6 réponses

Répondre au sujet
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 29 mai 2008 à 10:15
+3
Utile
... Tu connais les Patterns? Je pense qu'un pattern composite te serait bien utile... si tu connais.

Si tu veux il te faudrait une classe qui va contenir un attribut JPanel et avec un setter dessus tu vas pouvoir changer son contenu de manière relativement dynamique. Pour ton cas, si tu dois réinitialiser tout à nul, pourquoi ne pas faire un new JPanel(...); ?

<hr width="100%" size="2" />Timmy!!!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de dvoraky
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 29 mai 2008 à 09:53
0
Utile
Salut,

En fait, tu es dans une classe et tu fais appel à un objet qui implémente une Interface, c'est ça?

Et avec des getters et setters? ça suffirait pas?

@+

<hr width="100%" size="2" />Timmy!!!
Commenter la réponse de dvoraky
crackinett_boy 12 Messages postés jeudi 19 février 2004Date d'inscription 4 août 2009 Dernière intervention - 29 mai 2008 à 10:08
0
Utile
L'idée c'est que j'ai une sorte de séquenceur qui fait défiler les IHM les unes après les autres (mes IHM sont des classes qui héritent de JPanel).

Il se trouve que pour l'une de ces IHM, je voudrais créer un bouton qui réinitialise celle-ci.
Pour ce faire, je dois remettre pas mal d'attributs à "null". Je n'ai pas envie de les remettre tous à null un par un à la main(car il y en à beaucoup). Donc je cherche une méthode qui pourrait me lister tous les attributs déclarés dans ma classe, pour que je puisse ensuite les RAZ en itérant.

Merci.

Pantouflard
Commenter la réponse de crackinett_boy
crackinett_boy 12 Messages postés jeudi 19 février 2004Date d'inscription 4 août 2009 Dernière intervention - 29 mai 2008 à 10:36
0
Utile
Oui oui j'ai déjà étudié quelques patterns GOF mais le fait d'avoir un séquenceur qui gère l'enchainement des Panels me bloque considérablement. Je ne peux pas non plus recréer un new JPanel, car c'est le séquenceur seulement qui doit gérer l'affichage des JPanels (une contrainte que je me suis imposé par soucis de propreté ^^).
Je vais quand même étudier la piste du composite, je suis sur qu'il y a quelque chose à en tirer

Merci beaucoup dvoraky pour tout l'intérêt que tu as porté

Pantouflard
Commenter la réponse de crackinett_boy
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 29 mai 2008 à 10:40
0
Utile
Avec plaisir, dis toi que, pour les interfaces graphiques, les patterns sont relativement présents quand tu veux faire une appli qui tient la route quoi.

Si t'as des questions n'hésites pas ;)

Bonne chance (le pattern composite peut faire mal à la tête un peu ^^ )

<hr width="100%" size="2" />Timmy!!!
Commenter la réponse de dvoraky
crackinett_boy 12 Messages postés jeudi 19 février 2004Date d'inscription 4 août 2009 Dernière intervention - 29 mai 2008 à 10:45
0
Utile
Euh juste pour les intéréssés de la méthode que je recherchais au début, je l'ai trouvé ;)

Effectuez un this.getClass().getDeclaredFields() et vous aurez une collection avec vos attributs !

@+

Pantouflard
Commenter la réponse de crackinett_boy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.