1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2014
    Messages : 8
    Points : 8
    Points
    8

    Par défaut Est ce possible d'incrementer un nombre de variable objet?

    Bonjour,

    Excusé moi du dérangement :/

    Ça fait tout l'après-midi que je suis bloqué sur mon problème

    En gros je programme une page en javafx ou je veux afficher les 6 dernières photos de ma base de données, tout est ok sauf que le problème et que j'aimerais incrémenter ma boucle for creer à chaque passage de boucle, des objets comme image1, image2 ... jusqu'à 6.

    sauf que je ne vois pas comment je pourrais y insérer le contenu d'une variable à la place du nom de ce variable objet par exemple.

    Cordialement,

    Voici un morceau de code :
    Code JAVA : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
        @FXML
        private ImageView imageA;
     
        @FXML
        private ImageView imageB;
     
        @FXML
        private ImageView imageC;
     
        @FXML
        private ImageView imageD;
     
        @FXML
        private ImageView imageE;
     
        @FXML
        private ImageView imageF;
     
     @FXML
        private void initialize() throws ExceptionDatabase{
            daoPhoto daoPhoto= new daoPhoto();
            try {
                daoPhoto.listerUnUrlPhoto(1);
     
                for (int i = 1; i <= daoPhoto.listerLesPhoto().size(); ++i){
                   System.out.println(daoPhoto.listerUnUrlPhoto(i));
                   daoPhoto.listerUnUrlPhoto(i);
     
                   for(int lettre=1; lettre <= 6; ++lettre){
     
                       // Je veut remplacer Image imagea = new Image(); par Image image[lettre]=new Image();
                       Image imagea = new Image(daoPhoto.listerUnUrlPhoto(i).toString());
                       imageA.setImage(imagea);
                   }
                }
     
     
            } catch (SQLException ex) {
                Logger.getLogger(ConsulterBienController.class.getName()).log(Level.SEVERE, null, ex);
            }

    Je veut remplacer Image imagea = new Image(); par Image image[lettre]=new Image();

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    9 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 9 807
    Points : 24 101
    Points
    24 101
    Billets dans le blog
    2

    Par défaut

    Salut,

    Les noms de variables ne concernent que le code source. Tu ne peux pas en générer à l'exécution, et pas décider du nom d'une variable en tout cas.

    Pour réaliser ce genre de chose on peut :

    • utiliser un tableau
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
       
      Image[] array = {imageA, imageB,imageC,imageD, imageE, imageF};
      for(int lettre=1; lettre <= 6; ++lettre){
       
                         Image image = new Image(daoPhoto.listerUnUrlPhoto(i).toString());
                         array[i-1].setImage(image);
                     }
      Attention, ici, ça fonctionne parce que tu modifies un attribut de l'objet dans le tableau. On ne pourrait pas ça si les variables étaient de type primitif (ça ne changerait pas les valeurs des variables, mais les valeurs dans le tableau).

    • Une alternative est d'utiliser une Map, mais c'est moins pratique dans ton cas (et ça fait plus de code). Il y a le switch ou if/else, mais au final ça va t'obliger à écrire aussi plus de code, pour obtenir un code moins clair.
    • une autre alternative serait de le faire en javascript a exécuter avec NashHorn (en créant dynamiquement le code), mais ça serait écrire également beaucoup de code, pour un code peu clair à mon avis.

    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2014
    Messages : 8
    Points : 8
    Points
    8

    Par défaut

    Merci pour votre réponse, je me suis penché sur votre premier script qui ne me parrais pas déconnant, mais est-ce qu'il existerait une méthode ou un moyen pour convertir un imageview en types image car dans le tableau de type image, il faut mettre des types image

    Encore merci de votre aide,

    Cordialement,

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java/Eclipse RCP
    Inscrit en
    septembre 2009
    Messages
    9 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java/Eclipse RCP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2009
    Messages : 9 807
    Points : 24 101
    Points
    24 101
    Billets dans le blog
    2

    Par défaut

    Non, c'est moi qui ai fait une erreur : il fallait lire ImageView[] array = {imageA, imageB,imageC,imageD, imageE, imageF}; bien sûr.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2014
    Messages : 8
    Points : 8
    Points
    8

    Par défaut

    C'est bien ce qu'il me semblait autant pour moi ça fonctionne , merci beaucoup.

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    août 2005
    Messages
    5 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2005
    Messages : 5 618
    Points : 20 184
    Points
    20 184
    Billets dans le blog
    30

    Par défaut

    N'oublie pas que tu peux mettre des ids (setId()) ainsi que des styles de classe (getStyleClass().add()) sur tes ImageView donc oui même sans passer par une Map<String, ImageView> tu peux quand même incrémenter leur nom et faire un lookup() en ciblant un nom particulier ou faire un truc particulier avec un selecteur CSS si besoin* par derrière.

    *Bon ça reste des ImageView donc ce qu'on peut faire avec CSS reste limité.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/12/2011, 15h48
  2. Réponses: 2
    Dernier message: 02/04/2007, 09h56
  3. Réponses: 4
    Dernier message: 26/01/2006, 17h38
  4. Réponses: 2
    Dernier message: 16/05/2003, 10h14
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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