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 :

Invoquer la méthode Stage.initOwner() en utilisant la méthode onAction d'un MenuItem


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Par défaut Invoquer la méthode Stage.initOwner() en utilisant la méthode onAction d'un MenuItem
    Bonjour tout le monde,
    j'aimerais afficher une fenêtre en cliquant sur un MenuItem.
    voici mon essai:
    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
     
    public class MainController implements Initializable {
        @FXML
        private MenuBar menuBar;// juste pour récupérer la scène; 
     
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            // TODO
        }    
     
        @FXML // méthode qui sert d'afficher la fenêtre
        public void show(ActionEvent event) throws IOException{
        Parent root = FXMLLoader.load(getClass().getResource("FXML.fxml"));
        Scene scene = new Scene(root);
        Stage stage = new Stage();
        stage.initModality(Modality.APPLICATION_MODAL);
        stage.initOwner(menuBar.getScene().getWindow());
        stage.show();
        }
     
    }
    puisque MenuItem n'est pas un un sous classe de Node, donc je ne peux pas invoquer getScene(). c'est pour cela j'ai été obligé d'ajouter les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     @FXML
        private MenuBar menuBar;
    malgré çà, j n'arrive pas à afficher la fenêtre dont le fichier FXML est 'FXML.fxml' !!

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    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 901
    Billets dans le blog
    54
    Par défaut
    Il te reste la possibilité de passer directement une référence à la scène ou à la fenêtre mère dans le controleur principal depuis l'endroit où tu l'initialises.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyMainController.setScene(scene);
    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 éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 212
    Par défaut
    Citation Envoyé par bouye Voir le message
    Il te reste la possibilité de passer directement une référence à la scène ou à la fenêtre mère dans le controleur principal depuis l'endroit où tu l'initialises.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyMainController.setScene(scene);
    merci, c'est exactement çà, j'ai oublié d'ajouter la ligne suivante:une autre chose, pour récupérer l'objet scene, il vaut mieux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    root.getScene().getWindow()

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2006, 18h15
  2. utilisation de méthodes d'autres classes
    Par seb__ dans le forum Langage
    Réponses: 2
    Dernier message: 04/03/2006, 10h49
  3. utiliser une méthode en callback
    Par inertia dans le forum MFC
    Réponses: 3
    Dernier message: 23/06/2005, 17h56
  4. Utiliser les méthodes des boutons crées en rafale.
    Par kabouns dans le forum Composants
    Réponses: 8
    Dernier message: 03/12/2004, 10h48
  5. Formulaire utilisant la méthode POST + popup
    Par Hell dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/10/2004, 13h34

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