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 :

Afficher les données dans une popup


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut Afficher les données dans une popup
    Bonjour,

    Alors comment je vais vous expliquez mon problème, au fait j'ai un bouton et lorsque je clique sur ce dernier j'affiche une fenêtre.
    voici mon code (SampleController.java)

    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
    @FXML
    	protected void handleAdd() throws IOException
    	{
    		stage  = new Stage();
    		stage.initModality(Modality.WINDOW_MODAL);
     
    		  FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/AjoutEquipage.fxml"));
    		  Pane myPane=(Pane) fxmlLoader.load();
    		   control = context.getBean(AjoutEquipageController.class);
    	//	control = (AjoutEquipageController) fxmlLoader.getController();	
    		control.listActivites.getItems().setAll(data);//remplir la  combobox
     
    		 control.listActivites.valueProperty().addListener(new ChangeListener<Object>() {
     
    			@Override
    			public void changed(ObservableValue<? extends Object> ov, Object t, Object t1) {
     
    					creatView(control.vbox,t1);
     
    				}
    		  });
     
    			Scene scene = new Scene(myPane,800,600);
    			stage.setScene(scene);
    			stage.show();
            }
    alors mon problème c'est que lorsque j'utilise la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     control = context.getBean(AjoutEquipageController.class);
    J'arrive pas à avoir les données dans ma combobox

    alors que ça marche si je remplace la ligne précédente par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    control = (AjoutEquipageController) fxmlLoader.getController();
    voilà j'espère que c'est clair

    merci pour votre aide

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    lorsque tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1.FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/AjoutEquipage.fxml"));
    2.		  Pane myPane=(Pane) fxmlLoader.load();
    1. initialise le fichier a telecharger
    2. fxmlLoader.load() charge le fichier fxml initialisé en 1.) ainsi que le controlleur qui tu as specifié dans le fichier fxml. et a cet instant toutes les composantes de ton fichier fxml sont charger et pret a etre manipuler.

    Quand tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    3. control = context.getBean(AjoutEquipageController.class);
    il recupere la bean AjoutEquipageController que tu as defini mais qui n´est pas dans le meme context que ce que tu as fait au 1 et 2.
    La tu es dans 2 contextes different donc 2 instances differentes.
    Pourquoi veux-tu a tout pris passer par la methode 3.?

    Eric

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    Citation Envoyé par jeffray03 Voir le message
    lorsque tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1.FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/AjoutEquipage.fxml"));
    2.		  Pane myPane=(Pane) fxmlLoader.load();
    1. initialise le fichier a telecharger
    2. fxmlLoader.load() charge le fichier fxml initialisé en 1.) ainsi que le controlleur qui tu as specifié dans le fichier fxml. et a cet instant toutes les composantes de ton fichier fxml sont charger et pret a etre manipuler.

    Quand tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    3. control = context.getBean(AjoutEquipageController.class);
    il recupere la bean AjoutEquipageController que tu as defini mais qui n´est pas dans le meme context que ce que tu as fait au 1 et 2.
    La tu es dans 2 contextes different donc 2 instances differentes.
    Pourquoi veux-tu a tout pris passer par la methode 3.?

    Eric
    Merci pour ta réponse, j'ai bien compris ce qui se passe
    sinon je veut passer par la méthode 3, parce que dans le fichier AjoutEquipageController.java j'injecte avec spring mon model (EquipageModel.java) avec un autowired

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @Autowired
    protected EquipageModel model;
    On m'a dit que cela est dû au fait d'initialisation de mon contrôleur avec load (méthode 2), et il fallait plutôt utiliser la 3ième méthode

    voilà

    Merci

  4. #4
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    Salut,
    voici une ébauche de reponse,
    Dans ta classe AjoutEquipageController.java, si tu as une methode init() ou initialize() alors ajoute ce code dans ta methode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    AjoutEquipageController controller = this;
    FXMLLoader loader = new FXMLLoader(fxml);
            try {
                loader.setControllerFactory(new Callback<Class<?>, Object>() {
                    @Override
                    public Object call(Class<?> aClass) {
                        return controller;
                    }
                });
    .
    Essaies cela voir, cela devrait marcher.
    Excuses moi pour le retard.

    Eric

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 148
    Par défaut
    Citation Envoyé par jeffray03 Voir le message
    Salut,
    voici une ébauche de reponse,
    Dans ta classe AjoutEquipageController.java, si tu as une methode init() ou initialize() alors ajoute ce code dans ta methode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    AjoutEquipageController controller = this;
    FXMLLoader loader = new FXMLLoader(fxml);
            try {
                loader.setControllerFactory(new Callback<Class<?>, Object>() {
                    @Override
                    public Object call(Class<?> aClass) {
                        return controller;
                    }
                });
    .
    Essaies cela voir, cela devrait marcher.
    Excuses moi pour le retard.

    Eric
    Merci Eric

    Par contre, Est ce que vous pouvez m'expliquer un peux ce que dois faire ce code s'il vous plaît? parce que je ne vois pas le rapport avec ce que je demande?!

    Merci

  6. #6
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    Salut, peux-tu nous donner les codes de:
    AjoutEquipageController.java et SampleController? la je pourrais te faire une ebauche de reponse.
    Eric

Discussions similaires

  1. afficher les données dans une datagridview d'une façon verticale
    Par mounim_taoufik dans le forum Windows Forms
    Réponses: 0
    Dernier message: 13/11/2009, 19h37
  2. transmettre les données dans une popup
    Par nebil dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/08/2008, 14h44
  3. Réponses: 2
    Dernier message: 13/12/2007, 19h34
  4. Réponses: 2
    Dernier message: 02/03/2007, 21h38
  5. [VBA-E] afficher les données d'une datagrid dans des zones de textes
    Par fadwa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/05/2006, 13h51

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