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 :

Paramètres dans plusieurs fenêtres


Sujet :

JavaFX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Paramètres dans plusieurs fenêtres
    Bonjour,

    j'ai un petit problème : je n'arrive pas à trouver comment faire parvenir des paramètres à une deuxième fenêtre.
    J'ai plusieurs livres et je souhaite en cliquant sur l'un d'eux faire apparaître une nouvelle fenêtre contenant des informations complémentaires.

    J'ai créé les fenêtres avec scene builder, il y a donc 2 fichiers .fxml ('fenetre1' pour la fenetre principale et 'fenetre2' la secondaire qui change en fonction du livre)
    Je possède une classe avec la fonction main; et 2 fichiers "controller" ('controller1' et 'controller2') associés à chaque fichier .fxml

    J'avais essayé de créer bêtement une fonction dans 'controller2' modifiant les labels avec les paramètres donnés, méthode que j'utilisais après avoir instancié un 'controller2' dans 'controller1' suite à un clic. Mais je me suis vite rendu compte que ça ne marchait pas car les labels étaient perçus comme null.

    J'ai alors cherché mais je n'arrive pas à trouver une solution que je comprenne, j'ai juste saisi qu'il fallait utiliser une classe FXMLLoader mais je sais pas trop ce qu'elle peut faire, je m'en suis simplement servi pour charger les fichiers .fxml sur le peu que j'ai fait.

    Merci d'avance

  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
    Mieux vaudrait poster du code démontrant ton problème.
    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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Par le plus grand des hasards j'ai réussi à résoudre le problème

    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
     
    public class Main extends Application {
    	@Override
    	public void start(Stage primaryStage) throws IOException 
    	{
    		Scene scene = new Scene((VBox) FXMLLoader.load(getClass().getResource("/graphique/fenetrePrincipale.fxml")));
    		primaryStage.setScene(scene);
    		primaryStage.setTitle("Appli livres");
    		primaryStage.show();
    	}
     
    	public static void main(String[] args) {
    		launch(args);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class ControllerDetails 
    {
    	@FXML
    	public Label details;
     
    }
    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
     
    public class ControllerSaisie 
    {
    	@FXML
    	private Label nom;
    	@FXML
    	private TextField auteur;
    	@FXML
    	private TextField nbpages;
     
    	@FXML
    	public void voirDetails() throws IOException
    	{
    		Stage stage = new Stage();
     
    		FXMLLoader f = new FXMLLoader(getClass().getResource("/graphique/fenetreDetails.fxml"));
     
    		Scene scene = new Scene((HBox) f.load());
    		ControllerDetails cd = f.getController();
    		cd.details.setText("ok");
     
    		stage.setTitle("Details de " + nom.getText());
    		stage.setScene(scene);
    		stage.show();
    	}
    }
    En fait j'avais placé la ligne de commande f.getController() avant f.load() et par hasard en réécrivant j'ai changé l'ordre et ça a l'air de fonctionner
    C'est que le .load crée une instance du controleur ?


    Et question annexe : qu'est ce qu'un "node" et "parent" ? Merci d'avance

Discussions similaires

  1. Affichage d'une image dans plusieurs fenêtres
    Par DuffNut dans le forum C#
    Réponses: 4
    Dernier message: 14/03/2013, 16h17
  2. Remplir paramètres dans une fenêtre DOS
    Par kouban dans le forum VB.NET
    Réponses: 3
    Dernier message: 06/06/2011, 10h41
  3. [WD15] Attente de paramètre dans une fenêtre
    Par John81 dans le forum WinDev
    Réponses: 6
    Dernier message: 06/11/2010, 20h56
  4. plusieurs paramètre dans plusieurs fonctions
    Par acacia dans le forum Débuter
    Réponses: 15
    Dernier message: 16/02/2008, 17h31
  5. TForm pour plusieurs fenêtre dans une même fonction ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/11/2005, 12h38

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