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

JavaFX Discussion :

Remplir un Treeview à partir des données issues de la bdd


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2019
    Messages : 23
    Par défaut Remplir un Treeview à partir des données issues de la bdd
    Bonjour à tous!
    je travaille sur une application où j'ai créé un Treeview qui doit afficher les données issues de ma base de données et qui aura plusieurs niveaux. j'explique
    Ex: j'ai une Table Branche( Id, Nom, Predecesseur);
    c'est la propiété Predecesseur qui lie mes enregistrements dans la table.
    Je donne quelques enregistrements dans la Bdd;
    (1, MAMU,0)
    (2,MEME,0)
    (3,MOLI,1)
    (4,LILO,2)
    (5,MOSR,4)
    etc.
    les branches ayant la valeur de la propriété Predecesseur = 0 sont des racines.
    il est impossible de connaitre au préalable le nombre des branches et celles-ci s'ajoutent autant que possible.
    je reste disposé pour d'éventuels éclaircissements.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Quelque chose dans le style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    final var root = new TreeItem();
    final var itemMap = new HashMap<Integer, TreeItem>();
    while (resultSet.next()) {
        final int id = ...
        final var value = ...
        final int predecesseur = ...
        final var item = new TreeItem(...);
        itemMap.put(id, item);
        Optional.ofNullable(itemMap.get(predecesseur))
          .orElse(root)
          .getChildren()
          .add(item);
    }
    itemMap.clear();
    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

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2019
    Messages : 23
    Par défaut
    Merci Bouye pour votre réponse!
    Cependant, comment finalement affecter itmMap à mon Treeview ?

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    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

  5. #5
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2019
    Messages : 23
    Par défaut
    Tout marche déjà bien. j'ai réussi à affecter les TreeItem à mon Treeview.
    Sauf que je veux aller un peu plus loin en affichant la "value" ou valeur d'un TreeItem quand il est sélectionné.
    jusqu'ici, je n'ai réussi qu'à gérer l'événement d'augmentation (Expanded) et d'effondrement (Collapsed) d'un TreeItem. mais je veux gérer aussi la sélection ( quand on clique sur un treeItem, j'affiche sa valeur).
    les quelques lignes des codes de ce que j'ai déjà fait sont là.
    Merci pour l'assistance

    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
    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
    43
    44
    45
    46
    47
    public static void arb(StackPane stackPane){
     
            TreeView treeView;
            final TreeItem root = new TreeItem();
            final HashMap<String, TreeItem> itemMap = new HashMap<String, TreeItem>();
            JSONObject jsonObject = null;
     
            ArrayList<JSONObject> arrayList_all_branche = Database_Manager.find_All_branche();
     
            for(JSONObject object : arrayList_all_branche) {
     
                final String id = object.getString("Id_Branche");
                final String value = object.getString("Nom_Branche");
                final String predecesseur = object.getString("Predecesseur");
                final TreeItem item = new TreeItem(value);
     
                item.addEventHandler(TreeItem.branchExpandedEvent(), new EventHandler<TreeItem.TreeModificationEvent<Object>>() {
                    @Override
                    public void handle(TreeItem.TreeModificationEvent<Object> event) {
     
                        System.out.println(event.getSource().getValue());
                    }
                });
     
               item.addEventHandler(TreeItem.branchCollapsedEvent(), new EventHandler<TreeItem.TreeModificationEvent<Object>>() {
                    @Override
                    public void handle(TreeItem.TreeModificationEvent<Object> event) {
     
                        System.out.println(event.getSource().getValue());
                    }
                });
     
                itemMap.put(id, item);
     
                Optional.ofNullable(itemMap.get(predecesseur))
                        .orElse(root)
                        .getChildren()
                        .add(item)
                ;
     
            }
     
            treeView = new TreeView(root);
     
     
            stackPane.getChildren().add(treeView);
        }

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     treeView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
     treeView.getSelectionModel().selectedItemProperty().addListener(...);
    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. Remplir un combobox à partir des données de la base
    Par smateur dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 08/08/2015, 11h56
  2. Réponses: 9
    Dernier message: 02/01/2014, 11h21
  3. [MySQL] Remplir deux tables à partir des données d'une 3e table
    Par cleminute dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/09/2009, 22h06
  4. [TP] Remplir un tableau à partir des données d'un autre tableau
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 27/05/2007, 17h31
  5. [MySQL] Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/12/2006, 17h03

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