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 :

TreeView dans une nouvelle fenêtre


Sujet :

JavaFX

  1. #1
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut TreeView dans une nouvelle fenêtre
    Bonjour,

    J'ai un petit soucis, je cherche a afficher un Treeview dans une nouvelle fenêtre depuis mon application.

    voici mon code:

    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
     
     
    public class TreeWindowsController {
     
    	@FXML
    	TreeView<String> treeView;
     
    	void showTreeView() throws SAXException, ParserConfigurationException, IOException{
     
    		treeView = new TreeView<>(XML_Manager.readData(new TreeItemView()));
     
        	try{		
     
        	FXMLLoader loader = new FXMLLoader();
            loader.setLocation(MainApp.class.getResource("../view/Tree_Windows.fxml"));
            AnchorPane Tree_Windows = (AnchorPane) loader.load();
     
    //        Tree_Windows.getChildren().add(treeView);
     
            Stage dialogStage = new Stage();
            dialogStage.setTitle("Tree");
            dialogStage.initModality(Modality.WINDOW_MODAL);
            Scene scene = new Scene(Tree_Windows);
            dialogStage.setScene(scene);
     
            dialogStage.show();
     
        	} catch (IOException e) {
                e.printStackTrace();
            }
     
    	}
    }
    Mon Treeview est correctement créé mais il n'est pas affiché dans ma nouvelle fenêtre lors de l'appel de la fonction showTreeView().
    Si je rajoute le code Tree_Windows.getChildren().add(treeView); j'ai bien un treeview complet qui apparait.

    Apparemment le link avec javaFX ne s'est pas bien fait. pourtant j'ai bien ajouté le lien dans la fenêtre.fxml, voire ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <?import javafx.scene.control.*?>
    <?import java.lang.*?>
    <?import javafx.scene.layout.*?>
    <?import javafx.scene.layout.BorderPane?>
     
    <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.TreeWindowsController">
       <children>
          <TreeView fx:id="treeView" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
       </children>
    </AnchorPane>

    D'où peut venir le problème?
    Merci à vous

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Je ne comprends pas trop ce qui te cause un soucis / ce que tu as du mal a comprendre : l'arbre créé dans le code par showTreeView() et l'arbre (vide - il ne contient aucun nœud) provenant du FXML ne sont pas les mêmes et c'est bien normal .
    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 régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut
    Hello,

    problème réglé.
    En fait j'initialisais mal mon arbre.
    Il me fallait remplacer la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    treeView = new TreeView<>(XML_Manager.readData(new TreeItemView()));
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    treeView.setRoot(xmlmanager.readData(new TreeItemMain()));
    En effet, dans un premier temps j'invoquais l'instance mais je ne définissait pas le point root.


    Maintenant ca marche

  4. #4
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par bouye Voir le message
    l'arbre créé dans le code par showTreeView() et l'arbre (vide - il ne contient aucun nœud) provenant du FXML ne sont pas les mêmes et c'est bien normal .


    Les arbres sont bien "linkés" grâce à l'indication @FXML, donc mon arbre "treeview" renvoi bien à celui du FXML.
    Le treeview n'ayant pas son point root initialisé était vide.
    On peut dire que les arbres provenant du FXML et celui créé par le code sont identique ~~

  5. #5
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Octobre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : .
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 174
    Points : 90
    Points
    90
    Par défaut
    PS:

    Voici mon code actuel qui marche pour ceux que ca pourrait aider:

    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
     
     
        @FXML
        private TreeView<String> treeView;
     
        @FXML
        private void initialize(){
     
    		 TreeItem<String> root = new TreeItem<>("Load XML File");
    		 treeView.setRoot(root);
        }
     
     
        private void treeViewUpdate(){  	 
     
        	XML_Manager xmlmanager = XML_Manager.getInstance();
     
    //    	File toto = new File("C:/Users/xxx/Desktop/xxx.xml");
    //    	xmlmanager.setFile(toto);
     
        	if (xmlmanager.loadedFile()) 
        	{
        		try {
     
        			xmlmanager.Parser(); 
        			treeView.setRoot(xmlmanager.readData(new TreeItemMain()));
     
    			} catch (SAXException e) {
    				e.printStackTrace();
    			} catch (ParserConfigurationException e) {
    				e.printStackTrace();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
     
            }
        }
    Bonne chance

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

Discussions similaires

  1. Afficher la réponse dans une nouvelle fenêtre
    Par barthez dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/10/2006, 22h55
  2. [Débutant][HTML]Ouvrir le résultat d'un formulaire dans une nouvelle fenêtre
    Par virgul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/09/2006, 12h26
  3. [Struts] Ouvrir dans une nouvelle fenêtre
    Par vallica dans le forum Struts 1
    Réponses: 4
    Dernier message: 17/05/2006, 15h54
  4. Réponses: 15
    Dernier message: 02/03/2006, 15h34
  5. Ouvrir un lien dans une nouvelle fenêtre
    Par Le Lézard dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2004, 14h43

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