IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Récupérer objets d'un même type dans une classe


Sujet :

Langage Java

  1. #1
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut Récupérer objets d'un même type dans une classe
    Bonjour,

    j'aimerais savoir comment récupérer tous les objets d'un même type (JLabel, JTextField...) dans une classe sans avoir mis préalablement ces objets dans un tableau.

    En fait, j'instancie environ 400 objets et je trouve cela rébarbatif de les placer au fur et à mesure dans un tableau. Je pense qu'il doit exister une méthode pour les récupérer mais je ne la connaît pas.

    Merci de votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Bonjour,

    j'aimerais savoir comment récupérer tous les objets d'un même type (JLabel, JTextField...) dans une classe sans avoir mis préalablement ces objets dans un tableau.

    En fait, j'instancie environ 400 objets et je trouve cela rébarbatif de les placer au fur et à mesure dans un tableau. Je pense qu'il doit exister une méthode pour les récupérer mais je ne la connaît pas.

    Merci de votre aide.
    une hashmap peut etre

  3. #3
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Oui j'y ai pensé mais c'est le même système qu'un tableau, non ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Oui j'y ai pensé mais c'est le même système qu'un tableau, non ?
    grosso modo, une hashmap contient des couples (clé,valeur)
    à chacun de tes objets est attribué un ID, et ainsi l'acces à ces derniers est immédiat (donc pas mal niveau perf)

    tu peux créer un truc du genre :
    Map maMap = new HashMap();

    MonObjet o1 = new MonObjet();
    maMap.put( new Integer(1) , o1);

    et tu accederas à o1 par
    maMap.get( new Integer(1)) et en castant correctement le résultat

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel est l'intérêt de tout cela ?

    Car tout ce que je vois c'est que cela va plomber le garbage collector : il ne pourra plus rien libérer puisque tout sera référencé dans cette Map (ou ce tableau) !


    a++

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 398
    Points : 710
    Points
    710
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Quel est l'intérêt de tout cela ?

    Car tout ce que je vois c'est que cela va plomber le garbage collector : il ne pourra plus rien libérer puisque tout sera référencé dans cette Map (ou ce tableau) !


    a++
    pourquoi instancier 400 objets au fait ?? c'est quoi le but du jeu ?

  7. #7
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Merci de ta réponse Franck mais ce n'est pas cela mon problème.

    Je m'explique mieux :

    J'ai ma classe construite de cette mainère (grosso modo):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class MaClasse{
     
    public MaClasse(Object a, Object b, Object c){
    //instanciation des objets
    }
     
    public static void main(String [] args){
     
    MaClasse ob1 = new MaClasse(a, b, c);
    MaClasse ob2 = new MaClasse(d, e, f);
    .....
     
     
    }
     
    }

    Une fois que j'ai instancié tous mes objets, je souhaite les mettre dans un tableau ou une HashMap ou n'importe quelle autre méthode de stockage. Par contre, ce que je ne souhaite pas, c'est ajouter dans mon tableau les objets crées au fur et à mesure.

    C'est pourquoi je demande s'il n'existe pas une méthode qui récupère tous les objets d'un même type dans un tableau comme un peu la méthode split().

  8. #8
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Quel est l'intérêt de tout cela ?

    Car tout ce que je vois c'est que cela va plomber le garbage collector : il ne pourra plus rien libérer puisque tout sera référencé dans cette Map (ou ce tableau) !


    a++

    En fait, je souhaite placer mes objets dans un tableau car pour chaque objet est défini ses coordonnées et son type : JLabel ou JTextfield.

    exemple :

    objet1 = new MaClasse(JLabel, 360, 649, 170, 15);
    Une fois que j'aurais mis tous ces objets dans un tableau, je pourrais les placer dans mon IHM via une simple boucle sur ce tableau.

    De plus, ces objets pourront ou non être affichés donc je souhaite pouvoir y accéder facilement d'où mon souhait de pouvoir les mettre dans un tableau.

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Dans ce cas il faut utiliser le constructeur de MaClasse pour stocker l'élément dans un tableau static... mais je ne trouve pas cela très propre


    De plus comme je l'ai dit cela empêchera la libération de la mémoire...


    a++

  10. #10
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Ok merci de ta réponse je vais procéder comme cela.

    Oui ce n'est pas très propre je sais mais je ne vois pas d'autrre solution.

    A+ et merci

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Oui ce n'est pas très propre je sais mais je ne vois pas d'autrre solution.
    utiliser un LayoutManager pour positionner les composants (c'est précisément fait pour cela).

    a++

  12. #12
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Oui mais j'ai vraiment beaucoup de JTextField et je trouve cela plus simple en layout(null)

  13. #13
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Oui mais j'ai vraiment beaucoup de JTextField et je trouve cela plus simple en layout(null)
    Mmm... c'est plus simple pour toi de tout stocker en static


    Perso je te conseillerais plutôt de te tourner vers le forum Swing et d'y détailler ce que tu veux obtenir afin de trouver le layout le mieux adapté...


    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Déclaration tardive de types dans une classe sérializée en XML.
    Par BasicZX81 dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/02/2014, 17h41
  2. [PHP 5.0] Objet en tant qu'attribut dans une classe
    Par yassinozi dans le forum Langage
    Réponses: 6
    Dernier message: 03/02/2014, 09h23
  3. définition de type dans une classe générique
    Par Benoit_T dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 16/03/2009, 17h24
  4. Réponses: 1
    Dernier message: 07/10/2008, 15h49
  5. 2 objets de même type dans une classe
    Par _R3nO_ dans le forum Hibernate
    Réponses: 2
    Dernier message: 28/02/2007, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo