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

 Java Discussion :

Fenetre plein ecran vers reduite


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Fenetre plein ecran vers reduite
    Bonjour,

    J'ai créé une fenêtre pour un jeu que j'affiche en mode plein écran (sans les bordures).

    Je voudrais que l'utilisateur puisse réduire la fenêtre en appuyant sur Esc et que les bordures de fenêtre réapparaissent.

    Mais je ne sais pas trop comment faire...

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    public class Fenetre extends JFrame implements ActionListener,WindowListener,KeyListener
    {	
    	private boolean isFullscreen;
    	private JFrame fenetre; 
     
    	// Constructeur de fenêtre
     
    	public Fenetre(String namef)
    	{
    		fenetre = new JFrame();
     
    		isFullscreen=true;
     
    		//On cree les panels a poser sur la fenetre
    		JPanel panel=new JPanel();
     
    		//On cree les boutons a placer
    		JButton b1=new JButton("Jouer");
    	    b1.addActionListener(this);
    	    JButton b2=new JButton("Tout Fermer");
    	    b5.addActionListener(this);
     
    	    //On place tout sur les panels
    	    panel.add(b1);
    	    panel.add(b2);
     
    	    //On ajoute les panels sur la fenetre
    	    add(panel, BorderLayout.NORTH);
     
    	    //Proprietes de la fenetre
    	    setTitle(namef);
     
    	    //La fenetre se met en plein ecran
    	    setUndecorated(isFullscreen);
    	    setExtendedState(this.MAXIMIZED_BOTH);
     
    	    //La fenetre est attentive aux actions
    	    addKeyListener(this);
    	    addWindowListener(this);
     
    	    //La fenetre est visible
    	    setVisible(true);
    	}
     
    	// Surcharge du constructeur pour creer une fenetre sans boutons
    	public Fenetre(boolean fullscreen)
    	{		
    		setUndecorated(fullscreen);
    	    setExtendedState(this.MAXIMIZED_BOTH);
     
    		addWindowListener(this);
    		addKeyListener(this);
     
    		setVisible(true);
    	}
     
    	//Actions a effectuer lorsqu'un evenement se produit (par exemple cliquer)
    	public void actionPerformed(ActionEvent a)
        {
        	//On a clique sur le bouton Jouer
    		if(a.getActionCommand()=="Jouer")
    		{
    			Son sj=new Son("Jouer.wav");
    			sj.start();
    			Jeu jeu=new Jeu();
    		}
     
    		else if (a.getActionCommand()=="Tout Fermer")
    		{
    			//Toutes les fenetres se ferment
    			System.exit(0);
    		}
        }
     
    	public void keyPressed(KeyEvent k) 
    	{}
     
    	public void keyReleased(KeyEvent k) 
    	{}
     
    	public void keyTyped(KeyEvent k) 
    	{
    		if(k.getKeyCode()==k.VK_ESCAPE)
    			this.setBounds(0,0,640,400);
                        ????
    	}
     
    	public void windowActivated(WindowEvent we) 
    	{}
     
    	public void windowClosed(WindowEvent we) 
    	{}
     
    	public void windowClosing(WindowEvent we) 
    	{
    		this.dispose(); //Pour conserver les autres fenetres
    	}
     
    	public void windowDeactivated(WindowEvent we) 
    	{}
     
    	public void windowDeiconified(WindowEvent we) 
    	{}
     
    	public void windowIconified(WindowEvent we) 
    	{}
     
    	public void windowOpened(WindowEvent we) 
    	{}
     
    	//Main
    	public static void main (String args[])
    	{
    		//Creation de la fenetre principale
    		Fenetre f=new Fenetre("Projet de Programmation Orientee Objet");
    	}
    }

  2. #2
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    salut,

    c'est pas du vrai fullscreen dans ton code http://java.sun.com/docs/books/tutor...usivemode.html

    on fait du fullscreen ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice device = ge.getDefaultScreenDevice();
    frame.setUndecorated(true);
    frame.setResizable(false);
    device.setFullScreenWindow(frame);
    mais le problème avec ce code c'est que dès que ta frame est visible, tu ne pourras plus mettre setUndecorated(false) , et donc pas de barre de titre

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Donc avec cette méthode, je n'arriverai pas à mettre les bordures de fenêtre?

    Et pour la rendre plus petite en poussant sur Escape, comment m'y prendre?

    Je suppose en utilisant un KeyEvent...

  4. #4
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    pour sortir du mode plein écran tu mets device.setFullScreenWindow(null) dans un keylistener comme tu l'as dis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    frame.addKeyListener(new KeyAdapter()
    {
        public void keyPressed(KeyEvent ke)
        {
            if (ke.getKeyCode() == KeyEvent.VK_ESCAPE)
                device.setFullScreenWindow(null);
        }
    }
    mais tu n'auras pas la barre de titre.

    je crois que même avec ta méthode, tu ne pourras pas afficher la barre de titre, puisque le problème vient de la méthode setUndecorated qui ne peut pas être appelé sur une frame qui est déjà visible.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour ton aide

    J'ai résolu le problème en cachant la fenêtre principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fenetre.setVisible(false);
    Et en créant une copie de la première :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fenetre=new Fenetre("Resize");
    fenetre.setUndecorated(false);
    fenetre.setBounds(0,0,640,400);
    C'est un peu moins propre comme progra et ce sera un peu plus casse-tête pour récupérer les évenements sur les différentes fenêtres mais c'est plus pratique pour l'utilisateur du jeu

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

Discussions similaires

  1. Fenetre plein ecran
    Par psayco dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 01/01/2010, 16h22
  2. Centrer un gridLayout dans une fenetre plein ecran
    Par jm49 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/03/2009, 14h29
  3. fenetre plein ecran
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2007, 19h46
  4. Fenetre plein ecran
    Par skywaltitou dans le forum MFC
    Réponses: 7
    Dernier message: 28/03/2007, 12h06
  5. [Tkinter] Démarrer une fenetre en plein écran
    Par Kyti dans le forum Tkinter
    Réponses: 1
    Dernier message: 20/04/2005, 18h42

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