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 :

[API 1.3]Maximize Stage/Window


Sujet :

JavaFX

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Par défaut [API 1.3]Maximize Stage/Window
    Bonjour,

    J'ai créé pour mon application une interface en JavaFX grâce à NetBeans et son composer.

    J'ai créé un stage Undecorated et j'y ai ajouté les boutons pour minimiser, maximiser et fermer l'application.

    Mon problème vient du bouton maximiser.
    J'arrive à me mettre en fullscreen mode, mais ce n'est pas ce que je veux, ce qui m'interresse c'est d'avoir toujours la barre des applications de l'os ouverte.

    Quelqu'un a t'il déjà écrit ce genre de fonction pour JavaFX ?

    Merci pour votre aide !

  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
    Je pense qu'il faut essayer de récupérer la JFrame sous-jacente au Stage. Par contre j'ignore totalement si le code 1.2 fonctionne en 1.3. Evidement cela ne fonctionne qu'en mode desktop ou browser.

    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
     
    function getWindow(stage:Stage):java.awt.Window {
      if (stage == null) {
        return null;
      }
      def fstage = stage.impl_getPeer() as com.sun.javafx.tk.swing.FrameStage;
      fstage.window;
    }
     
    function getFrameFromTitle(frameName:String):java.awt.Frame {
        var frames = java.awt.Frame.getFrames();
        for(frame in frames) {
            if (frameName == frame.getTitle()) {
                return frame
            }
        }
        return null;
    }
     
    def frame1:java.awt.Frame = getWindow(stage) as java.awt.Frame
    frame1.setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);
     
    //def frame2:java.awt.Frame = getFrameFromTitle(stage.title);
    //frame2.setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);
    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 expérimenté

    Profil pro
    Inscrit en
    Février 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 284
    Par défaut
    On peut avoir la taille de d'écran sans la barre des taches.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 64
    Par défaut
    Ah, naïvement, j'utilisais juste getFrames() et la première retournée.
    C'était pour calculer les Insets en JavaFX 1.0, avant qu'on puisse le faire nativement.
    Encore maintenant, je peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var frames: Frame[] = Frame.getFrames();
    frames[0].setExtendedState(Frame.MAXIMIZED_BOTH);
    Quels sont les inconvénients de cette approche probablement trop simpliste ? Si on a plusieurs Stages ?

  5. #5
    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
    Déjà oui effectivement c'est genant quand tu as plusieurs fenêtres.

    Si tu veux être portable en mobile et TV il faut rester sur Stage et la classe javafx.stage.Screen.

    Sinon si tu restes en desktop ou browser le problème vient du fait qu'il est possible que JavaFX ne se repose plus sur Swing / AWT dans un futur plus ou moins lointain et donc que ton code ne fonctionnera plus alors. Mais je pense que tu as le temps de voir venir.
    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

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Par défaut
    Désolé de répondre si tard, mais je n'ai reçu aucune notification.

    Le code 1.2 ne fonctionne pas en 1.3.

    Enfin pour le coup c'est le getWindow qui n'est pas reconnu.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Par défaut
    Mise à part le getWindow qui ne fonctionne pas, voici ce que j'ai pu faire grâce à ton code.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var frames = java.awt.Frame.getFrames();
            for(frame in frames) {
                if (frame.getExtendedState() == java.awt.Frame.NORMAL) {
                    frame.setExtendedState(java.awt.Frame.MAXIMIZED_BOTH)  
                } else {
                    frame.setExtendedState(java.awt.Frame.NORMAL);
                }
            }

    Cela fonctionne très bien!
    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/07/2009, 22h21
  2. API pour créer un shortcut windows
    Par dummygreg dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 22/07/2009, 11h21
  3. API pour appareil photo sous Windows Mobile 5
    Par MaTeoDeV dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 05/12/2007, 17h29
  4. API renvoyant les sessions dans Windows Serveur 2003?
    Par ceanota dans le forum Windows
    Réponses: 0
    Dernier message: 23/10/2007, 11h36
  5. [VB6] Fonction ou API qui retourne l'utilisateur windows courant
    Par nnj dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/05/2006, 18h31

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