Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
alexandre cartapanis
Bonjour,
Mon probleme est le suivant :
Je voudrais instancier une classe dynamiquement, depuis un bouton d'une GUI.
Je connais la methode Classe.newInstance(), mais comment acceder ensui te à l'objet ainsi créé, si je n'ai pas prédéfini un emplacement mé moire avant ?
Bref, comment appuyer sur un bouton, et recuperer une instance sur laqu elle je pourrai executer des méthodes ?
Je voudrais instancier une classe dynamiquement, depuis un bouton d'une GUI.
Je connais la methode Classe.newInstance(), mais comment acceder ensui te à
l'objet ainsi créé, si je n'ai pas prédéfini un emplacement mé moire avant ?
Bref, comment appuyer sur un bouton, et recuperer une instance sur laqu elle
je pourrai executer des méthodes ?
Je voudrais instancier une classe dynamiquement, depuis un bouton d'une GUI.
Je connais la methode Classe.newInstance(), mais comment acceder ensui te à l'objet ainsi créé, si je n'ai pas prédéfini un emplacement mé moire avant ?
Bref, comment appuyer sur un bouton, et recuperer une instance sur laqu elle je pourrai executer des méthodes ?
Alors, réponse à Alexandre (merci pour ta réactivité hors du commun!) :
J'ai déja jeté un coup d'oeil a la reflection, mais comme le dit la page sur le site de Sun:
With the reflection API, you can perform these tasks even if the names of the classes, fields, and methods are unknown until runtime.
Dans le cas présent : Je connais le nom de ma classe, ses méthodes, etc... Ce que je désire, c'est que chaque nouvel appui sur un jButton produise une nouvelle instance de cette classe. Donc je pourrais utiliser un
MonObjet nom_de_lobjet = new MonObjet(params);
Le probleme est : une fois que l'on a instancié un objet, désigné ci-dessus par le nom "nom_de_lobjet" codé en dur dans la méthode, un nouvel appel a cette méthode écrasera la référence vers le premier objet crée. D'ou l'idée d'avoir une référence vers l'objet au nom variable. Mais je ne sais pas comment l'implementer, je ne sais meme pas si cela est possible.
Voyez ce que je veux dire ?
Alors, réponse à Alexandre (merci pour ta réactivité hors du commun!) :
J'ai déja jeté un coup d'oeil a la reflection, mais comme le dit la page sur
le site de Sun:
With the reflection API, you can perform these tasks even if the names of
the classes, fields, and methods are unknown until runtime.
Dans le cas présent :
Je connais le nom de ma classe, ses méthodes, etc...
Ce que je désire, c'est que chaque nouvel appui sur un jButton produise une
nouvelle instance de cette classe.
Donc je pourrais utiliser un
MonObjet nom_de_lobjet = new MonObjet(params);
Le probleme est : une fois que l'on a instancié un objet, désigné ci-dessus
par le nom "nom_de_lobjet" codé en dur dans la méthode, un nouvel appel a
cette méthode écrasera la référence vers le premier objet crée.
D'ou l'idée d'avoir une référence vers l'objet au nom variable. Mais je ne
sais pas comment l'implementer, je ne sais meme pas si cela est possible.
Alors, réponse à Alexandre (merci pour ta réactivité hors du commun!) :
J'ai déja jeté un coup d'oeil a la reflection, mais comme le dit la page sur le site de Sun:
With the reflection API, you can perform these tasks even if the names of the classes, fields, and methods are unknown until runtime.
Dans le cas présent : Je connais le nom de ma classe, ses méthodes, etc... Ce que je désire, c'est que chaque nouvel appui sur un jButton produise une nouvelle instance de cette classe. Donc je pourrais utiliser un
MonObjet nom_de_lobjet = new MonObjet(params);
Le probleme est : une fois que l'on a instancié un objet, désigné ci-dessus par le nom "nom_de_lobjet" codé en dur dans la méthode, un nouvel appel a cette méthode écrasera la référence vers le premier objet crée. D'ou l'idée d'avoir une référence vers l'objet au nom variable. Mais je ne sais pas comment l'implementer, je ne sais meme pas si cela est possible.
Voyez ce que je veux dire ?
fd
Le probleme est : une fois que l'on a instancié un objet, désigné ci-dessus par le nom "nom_de_lobjet" codé en dur dans la méthode, un nouvel appel a cette méthode écrasera la référence vers le premier objet crée. D'ou l'idée d'avoir une référence vers l'objet au nom variable. Mais je ne sais pas comment l'implementer, je ne sais meme pas si cela est possible.
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[])); et tu manipules tes objets avec leur index dans la liste
Le probleme est : une fois que l'on a instancié un objet, désigné ci-dessus
par le nom "nom_de_lobjet" codé en dur dans la méthode, un nouvel appel a
cette méthode écrasera la référence vers le premier objet crée.
D'ou l'idée d'avoir une référence vers l'objet au nom variable. Mais je ne
sais pas comment l'implementer, je ne sais meme pas si cela est possible.
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[]));
et tu manipules tes objets avec leur index dans la liste
Le probleme est : une fois que l'on a instancié un objet, désigné ci-dessus par le nom "nom_de_lobjet" codé en dur dans la méthode, un nouvel appel a cette méthode écrasera la référence vers le premier objet crée. D'ou l'idée d'avoir une référence vers l'objet au nom variable. Mais je ne sais pas comment l'implementer, je ne sais meme pas si cela est possible.
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[])); et tu manipules tes objets avec leur index dans la liste
fd
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[])); et tu manipules tes objets avec leur index dans la liste waou j'avais pas bien lu le topic, tu peux encore mieux faire ..
Hashtable<String,TonObjet> je m'explique, tu ajoutes ta nouvelle instance dans une hashtable dont la clé sera le nom que tu passe en parametre.. cependant attention, la clé doit etre unique donc si tu crée un nouvel objet ayant un nom deja existant, tu ecrases l'instance precedante.
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[]));
et tu manipules tes objets avec leur index dans la liste
waou j'avais pas bien lu le topic, tu peux encore mieux faire ..
Hashtable<String,TonObjet>
je m'explique, tu ajoutes ta nouvelle instance dans une hashtable dont
la clé sera le nom que tu passe en parametre..
cependant attention, la clé doit etre unique donc si tu crée un nouvel
objet ayant un nom deja existant, tu ecrases l'instance precedante.
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[])); et tu manipules tes objets avec leur index dans la liste waou j'avais pas bien lu le topic, tu peux encore mieux faire ..
Hashtable<String,TonObjet> je m'explique, tu ajoutes ta nouvelle instance dans une hashtable dont la clé sera le nom que tu passe en parametre.. cependant attention, la clé doit etre unique donc si tu crée un nouvel objet ayant un nom deja existant, tu ecrases l'instance precedante.
aa
"fd" a écrit dans le message de news: 441ad6b5$0$21519$
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[])); et tu manipules tes objets avec leur index dans la liste waou j'avais pas bien lu le topic, tu peux encore mieux faire ..
Hashtable<String,TonObjet> je m'explique, tu ajoutes ta nouvelle instance dans une hashtable dont la clé sera le nom que tu passe en parametre.. cependant attention, la clé doit etre unique donc si tu crée un nouvel objet ayant un nom deja existant, tu ecrases l'instance precedante.
Oups... soudain je me sens bete... J'avais même pas pensé à stocker ca dans un tableau ( je n'avais pas envisagé ce genre de proportion pour cette classe!!)
Merci beaucoup.
"fd" <remove.jedors.remove@remove.altern.org> a écrit dans le message de
news: 441ad6b5$0$21519$626a54ce@news.free.fr...
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[]));
et tu manipules tes objets avec leur index dans la liste
waou j'avais pas bien lu le topic, tu peux encore mieux faire ..
Hashtable<String,TonObjet>
je m'explique, tu ajoutes ta nouvelle instance dans une hashtable dont la
clé sera le nom que tu passe en parametre..
cependant attention, la clé doit etre unique donc si tu crée un nouvel
objet ayant un nom deja existant, tu ecrases l'instance precedante.
Oups... soudain je me sens bete... J'avais même pas pensé à stocker ca dans
un tableau ( je n'avais pas envisagé ce genre de proportion pour cette
classe!!)
"fd" a écrit dans le message de news: 441ad6b5$0$21519$
Voyez ce que je veux dire ?
Pourquoi n'ajoutes tu pas ta nouvelle instance à une liste ?
liste.add(new TonObjet(tesparams[])); et tu manipules tes objets avec leur index dans la liste waou j'avais pas bien lu le topic, tu peux encore mieux faire ..
Hashtable<String,TonObjet> je m'explique, tu ajoutes ta nouvelle instance dans une hashtable dont la clé sera le nom que tu passe en parametre.. cependant attention, la clé doit etre unique donc si tu crée un nouvel objet ayant un nom deja existant, tu ecrases l'instance precedante.
Oups... soudain je me sens bete... J'avais même pas pensé à stocker ca dans un tableau ( je n'avais pas envisagé ce genre de proportion pour cette classe!!)
Merci beaucoup.
thomas_escolan
Mieux, tu pourras ensuite demander le "déréférencement" de l'objet par une suppression de la table quand tu ne t'en sers plus ; du coup, cela renvoie ton objet au garbage collector, ce qui est plus propre !
Mieux, tu pourras ensuite demander le "déréférencement" de l'objet
par une
suppression de la table quand tu ne t'en sers plus ; du coup, cela
renvoie
ton objet au garbage collector, ce qui est plus propre !
Mieux, tu pourras ensuite demander le "déréférencement" de l'objet par une suppression de la table quand tu ne t'en sers plus ; du coup, cela renvoie ton objet au garbage collector, ce qui est plus propre !