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

Agents de placement/Fenêtres Java Discussion :

Save Dialog en plein écran


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut Save Dialog en plein écran
    Bonjour,
    j'essaie d'implémenter pour mon appli un export de données sous différents formats.

    Quand je suis en fenetré aucun soucis pour le FileDialog, ni pour les JOptionPane.showmessagedialog(...) il s'affiche en avant plan.

    Maintenant j'ai du mettre un mode plein écran pour mon appli et quand un showmessagedialog ou le FileDialog d'export s'ouvre, il minimise mon appli dans la barre de taches et s'affiche seul à l'écran.

    j'ai jeté un coup sur les fonctions du genre toFront(), toBack() , allwaysOnTop(), ... , et je dois dire que je vois pas trop comment faire ça, qui pourtant est fait pas beaucoup d'applis donc surement un truc simple (s'il faut regarder du coté des internalFrame pour faire ça, je verrais mais ça me generait beaucoup)

    merci d'avance

  2. #2
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Bonjour,

    quel est le code qui fait passer votre application en mode plein écran ?

    Personnellement, je viens de faire un essai avec le profet que je développe actuellement, j'ai ajouté avant l'instruction this.pack()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setExtendedState( Frame.MAXIMIZED_BOTH );
    Ceci ouvre mon application en plein écran, et ne pose aucun problème vis-a-vis de l'apparition des boites de dialogues.

    @ bientôt...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
     
    this.dispose();
    this.setUndecorated(true);
    this.setResizable(false);
    device.setFullScreenWindow(this);
    this.setVisible(true);
    mon objet étend la classe JFrame.
    je parle d'un plein écran classique (pas agrandissement), touche F11 pour firefox par exemple.

    et pour rester sur l'exemple de firefox une fois en plein ecran (F11), une sauvegarde avec ctrl+s affiche bien un save dialog par dessus la fenetre de plein ecran

  4. #4
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par défaut
    Bonjour,

    d'après le mode d'emploi Oracle, il est indiqué pour

    setFullScreenWindow

    public void setFullScreenWindow(Window w)
    Enter full-screen mode, or return to windowed mode. The entered full-screen mode may be either exclusive or simulated. Exclusive mode is only available if isFullScreenSupported returns true.
    Exclusive mode implies:

    •Windows cannot overlap the full-screen window. All other application windows will always appear beneath the full-screen window in the Z-order.

    There can be only one full-screen window on a device at any time, so calling this method while there is an existing full-screen Window will cause the existing full-screen window to return to windowed mode.

    •Input method windows are disabled. It is advisable to call Component.enableInputMethods(false) to make a component a non-client of the input method framework.
    Simulated full-screen mode resizes the window to the size of the screen and positions it at (0,0).

    /.../
    Je pense que le problème proviendrait de ce qui est indiqué au 2ème point. Peut être que le fait d'afficher une boite de dialogue modale génère ce probleme ?

    @ bientôt...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut
    alors pour me détacher de la méthode setFullScreenWindows

    j'ai utilisé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            GraphicsDevice device =
                    GraphicsEnvironment.getLocalGraphicsEnvironment()
                            .getDefaultScreenDevice();
            Rectangle r = device.getDefaultConfiguration().getBounds();
     
            // Si on met en plein écran
            if (state)
            {
                this.dispose();
                this.setUndecorated(true);
                this.setResizable(false);
                this.setSize(r.getSize());
                this.setVisible(true);
            }
    du coup en mode plein écran comme ceci (qui doit en gros etre la version simulated) les JOptionPane (showinput,showmessage, ...) s'affiche bien par dessus ma JFrame.

    par contre j'ai maintenant un soucis avec la classe FileDialog (une popup de sauvegarde dans mon cas). Quand j'utilise l'action save de mon menuItem qui fait apparaitre un FileDialog :

    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
                        FileDialog fd = new FileDialog(this.ePsad,
                                this.text.getString("exportErrorTitle"),
                                FileDialog.SAVE);
                        fd.setDirectory(System.getProperty("user.dir"));
                        fd.setAlwaysOnTop(true);
                        fd.setVisible(true);
     
                        String name = fd.getFile();
                        if (name != null)
                        {
                            String url = fd.getDirectory();
                            ChartUtilities.saveChartAsPNG(new File(url + name
                                    + ".png"), chart, 800, 600);
                        }
                        else
                        {
                            fd.dispose();
                        }
    que je sois en plein écran ou fenêtré, ma frame principale se réduit (barre des taches) et rien de s'affiche, si je clique dans la barre de tache, la fenêtre FileDialog s'affiche et apres sauvegarde ou annuler/fermeture, je reviens bien dans ma frame.
    Sauf qu'une sauvegarde du genre n'est pas tres user friendly et je ne trouve pas d'où celà pourrait venir (meme en jouant avec des alwaysOnTop, toBack, ToFront, je n'arrive pas au resultat désiré)
    je trouve surtout bizarre cette minimisation en mode fenêtré :s

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut
    c'est bon j'ai trouvé c'est tout bete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                        fd.setVisible(true);
                        fd.toFront();
    un toFront() apres l'affichage et voilà

    merci.

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

Discussions similaires

  1. pyGtk et gtk.Dialog : comment passer à plein écran
    Par turboiii dans le forum GTK+ avec Python
    Réponses: 1
    Dernier message: 18/02/2013, 18h54
  2. Perte du device en plein écran
    Par Dranor dans le forum DirectX
    Réponses: 2
    Dernier message: 10/09/2003, 09h24
  3. Thread et affichage direct3D plein écran
    Par Harry_polin dans le forum DirectX
    Réponses: 8
    Dernier message: 13/03/2003, 22h22
  4. Réponses: 17
    Dernier message: 17/10/2002, 20h06
  5. plein écran
    Par patapetz dans le forum OpenGL
    Réponses: 9
    Dernier message: 21/08/2002, 14h15

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