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 :

Enlever les bordures d'une JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut Enlever les bordures d'une JFrame
    Bonjour à tous,

    Après 1 heure de recherche, je me vois obliger de venir vous posez la question :

    J'ai créé une fenêtre avec JFrame et mon problème vient du fait que après l'avoir mis en pleine écran avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    Rectangle bounds = env.getMaximumWindowBounds();
    this.setBounds(bounds);
    Elle contient toujours des bordure sur les côtés et en bas, je pensais avoir réussi à résoudre ce problème avec la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.setExtendedState(MAXIMIZED_BOTH);
    A ce moment là ma fenêtre ne contenait plus de bordure mais elle passait pas dessus la barre de tâche de windows.

    J'aimerais savoir si l'un de vous savait comment enlever ces bordures facilement.

    Merci d'avance !

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JFrame frame = new JFrame("Coucou");
        frame.setUndecorated(true);
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut
    Merci de ta réponse rapide.

    Mais j'ai du oublier de préciser qu'il ne faut pas enlever le barre supérieur, qui contient le nom et la croix de fermeture.

    Le problème d'utiliser cette méthode est qu'elle enlève cette barre supérieur que je veut garder.

    En fait , plus concrètement je veut obtenir une page telle que celle du navigateur interne que tu utilises , elle à une barre supérieur mais de contour. Sauf quand tu n'est pas en plein écran.

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    En plus du setUndecorated(true) tu peux utiliser un borderlayout
    - tu mets un JPanel dans le "north" avec une hauteur de 20 ou 30 par exemple et tu y ajoutes un jLabel avec le titre et un JButton avec un X en rouge pour fermer le JFrame
    - dans le "center" tu y mets un JPanel qui contient tes contrôles
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut
    Ta solution devrait marcher mais je me demande si il n'y pas un moyen plus simple de mettre une fenetre en plein écran et sans ces bordures, mais de sortes à ce qu'elle ne passe pas par dessus la barre de tâche, comme elle le fait avec la méthode setExtendedState(MAXIMIZE_BOTH).

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux passer la JFrame en plein écran (uniquement avant de l'afficher) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(frame); // le 0 c'est pour l'exemple : ça correspond au numéro d'écran - attention donc au dual screen
    Mais tu ne pourras pas afficher autre chose que la barre de titre standard : pas possible d'avoir la barre d'onglets qu'on voit dans les navigateurs quand on les passe en plein écran, sans tout redessiner soit-même sur une JFrame undecorated.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut
    J'ai essayé ton façon de faire Joel, mais il arrive ce que j'essaie d'éviter, la fenêtre passe par dessus la barre des taches. Du coup elle n'as pas de bord mais elle est trop grande. Un petite image pour illustrer :

    Nom : image.png
Affichages : 1738
Taille : 81,1 Ko


    Désoler pour la taille de l'image ^^

    Sur mon écran on ne voit pas les bordures, mais on voit bien que la barre des taches n'est pas présente.

    Ta solution ne marche donc pas, mais merci quand même.

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ne pas fonctionner et ne pas faire exactement ce que tu as en tête sont 2 choses complètements différentes. La barre de tâche c'est Windows qui la gère. Quel rapport avec les fenêtres sous Java ?

    Déjà, la barre de tâche peut se paramétrer pour quelle soit toujours visible, rétractable, etc... et ça n'a rien à voir non plus avec Java. On peut aussi dimensionner la fenêtre pour laisser voir ce qu'on veut. Par contre plein écran, c'est plein écran : donc pas de barre de tâche. Et sinon, on ne peut pas enlever les bordures sans enlever les autres décorations.

    EDIT : Le code pour laisser voir la barre de tâche Windows lorsqu'elle fixe non rétractable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    JFrame frame = new JFrame("Démo");
     
    Rectangle bounds = frame.getGraphicsConfiguration().getBounds();
     
    frame.setMaximizedBounds(bounds);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(frame);
     
    frame.setVisible(true);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut
    Tu as raison, ne pas faire ce que je souhaite et ne pas fonctionner est différend. J'aurais du m'exprimer autrement ^^

    Pour la barre des tâche, le problème vient du fait qu'elle est belle et bien paramétrée pour être fixe et rester par dessus les applications. Le problème étant qu'elle passe quand même sous mon application.

    Du coup, j'ai utiliser ton code et c'est toujours le même problème. La frame se met bien en plein écran mais elle passe par dessus la barre des tâches...

    Je te met un screen de la config de la barre des taches :

    Nom : Capture.PNG
Affichages : 1749
Taille : 33,4 Ko

    Après, je ne sais pas si cela marche sur ton PC mais ça vient peu-être d'un problème de mon Eclipse ou de mon PC en lui même.

    En tous cas merci d'essayer de trouver une solution aussi rapidement ^^

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Essaye comme ça :

    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
    public static void main(String[] args) {
     
    		JFrame frame = new JFrame("Démo");
     
    		Rectangle bounds = frame.getGraphicsConfiguration().getBounds();
     
    		Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration());
     
    		bounds.x+=insets.left;
    		bounds.y+=insets.top;
    		bounds.width-=(insets.left+insets.right);
    		bounds.height-=(insets.top-insets.bottom);
     
    		frame.setMaximizedBounds(bounds);
    		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    		GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(frame);
     
    		frame.setVisible(true);
     
    	}
    Si ça ne fonctionne toujours pas, essaye à tout hasard :

    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
    public static void main(String[] args) {
    		SwingUtilities.invokeLater(()->run());
    	}
     
    	private static void run() { 
    		JFrame frame = new JFrame("Démo");
     
    		Rectangle bounds = frame.getGraphicsConfiguration().getBounds();
     
    		Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration());
     
    		bounds.x+=insets.left;
    		bounds.y+=insets.top;
    		bounds.width-=(insets.left+insets.right);
    		bounds.height-=(insets.top-insets.bottom);
     
    		frame.setMaximizedBounds(bounds);
    		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    		GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(frame);
     
    		frame.setVisible(true);
     
    	}
    Ou si tu es en Java 7 :
    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
    	public static void main(String[] args) {
    		SwingUtilities.invokeLater(new Runnable() {
     
    			@Override
    			public void run() {
    				JFrame frame = new JFrame("Démo");
     
    				Rectangle bounds = frame.getGraphicsConfiguration().getBounds();
     
    				Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration());
     
    				bounds.x+=insets.left;
    				bounds.y+=insets.top;
    				bounds.width-=(insets.left+insets.right);
    				bounds.height-=(insets.top-insets.bottom);
     
    				frame.setMaximizedBounds(bounds);
    				frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    				GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(frame);
     
    				frame.setVisible(true);
     
    			}
    		});
    	}
    Sinon qu'affiche ce programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static void main(String[] args) {
     
    		JFrame frame = new JFrame("Démo");
     
    		Rectangle bounds = frame.getGraphicsConfiguration().getBounds();
     
    		System.out.println(bounds);
    		System.out.println(Toolkit.getDefaultToolkit().getScreenSize()); 
    		System.out.println(Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()));
     
    	}
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut
    Programme n°1 :

    Pas de différence

    Programme de n°2 :

    Pas de différence

    Programme n°3 :

    Pas de différence

    Programme n°4 :

    Il affiche ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java.awt.Rectangle[x=0,y=0,width=1600,height=900]
    java.awt.Dimension[width=1600,height=900]
    java.awt.Insets[top=0,left=0,bottom=40,right=0]

    Je me demandais si cette ligne est importante :

    SwingUtilities.invokeLater(new Runnable()

    Car je en la met pas, vu que mon programme ne se trouve pas dans le main mais dans une classe que j'ai créé.


    D'ailleurs je me demandais si vous vouliez vois à quoi il ressemble ?


    [EDIT] Et oui, j'utilise Java 7

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Le 2 devrait fonctionner (enfin tous devraient fonctionner (ce qui est le cas sur mon environnement), mais le 2 à fortiori, vu que je calcule à la main la taille et qu'on voit à la trace que les valeurs sont bonnes : la hauteur de ta taskbar fait 40px). C'est quoi ton OS ? C'est quoi la version Java ? Quelle JVM ?


    Pour le invokeLater, c'est pour forcer l'exécution sur le thread de SWING : normalement tout ce qui est SWING doit être exécuté sur le thread SWING, sous peine d'avoir des dysfonctionnement. Ce qui fonctionne mais exécuté en dehors du thread SWING, fonctionne par "chance" (des fois dues à la lenteur ou la rapidité d'une machine, une JVM plus permissive, etc...)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut
    JE suis sous Windows 7 64 bit, avec Java 7 et la JVM il faudrait que tu me dises comment on peu voir son nom .

    Pour le invokeLater, est-ce qu'il est vraiment indispensable et peu provoquer mon problème ?

    Et il y des erreurs, je pense dans ton programme 2 , je vais essayer de le corriger :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
                    Rectangle bounds = this.getGraphicsConfiguration().getBounds();
     
    		Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
     
    		bounds.x-=insets.left;
    		bounds.y-=insets.top;
    		bounds.width-=(insets.left+insets.right);
    		bounds.height-=(insets.top+insets.bottom);
     
    		this.setBounds(bounds);
    Quand j'utilise celui la de programme j'obtient cet écran :

    Nom : Capture.PNG
Affichages : 1766
Taille : 156,6 Ko

    Le problème c'est qu'il y a toujours les bordure, mais je pense que je vais régler ce problème de façon sale, en retirant , le nombre de pixels à gauche et à droite à la main pour les faire sortir de l’écran, mais il restera celle du bas que passera par dessus la barre des tâche si je l'agrandit...


    [EDIT] D'ailleurs, pour obternir le même résultat, il suffit d'utiliser ce que j'utilise en ce moment, en attendant mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    		Rectangle bounds = env.getMaximumWindowBounds();
    		this.setBounds(bounds);
    [/EDIT]

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    java -version en console devrait t'afficher la jvm à la fin

    Le invokeLater n'est pas indispensable, il est obligatoire : dans le cas contraire, on ne peut garantir que le fonctionnement sera exactement celui prévu. On peut même avoir des exceptions, voire des crashs sur certaines environnement.

    Sur ta dernière copie d'écran : je ne vois pas les bordures et je vois la barre de tâches. Mais ça fait tellement longtemps que je suis plus sous Windows 7 que j'ai un peu oublié le look que ça avait. Pour moi les bandes grises ne sont pas les bordures de la fenêtre, mais des bordures internes, sur le rootpane ou le content pane.

    Dans mon cas, Win8.1, JDK 8.40, 64bits, HotSpot, barre verrouillé ou pas, c'est bien ce code qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    Rectangle bounds = env.getMaximumWindowBounds();
    frame.setMaximizedBounds(bounds); 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(frame);
     
    frame.setVisible(true);;
    Avec celui que tu donnes, j'ai les bordures et c'est normal : les bordures apparaissent forcément en non maximisé (même si sa taille est celle de l'écran) sur une fenêtre redimensionnable. Mais en ajoutant frame.setResizable(false);, je n'ai plus les bordures.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #15
    Membre habitué Avatar de Arislas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 116
    Points : 170
    Points
    170
    Par défaut
    Merci !!! J'ai utilisé le code que tu viens de doonner et j'ai eu l'idée de déplacer mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frame.setResizable(false);
    à après le code, juste avant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     frame.setvisible(true);
    J'ai n'ai donc plus de bordure et la barre des tâche.

    Un grand merci à toi ! Et à népomucène qui à essayé de m'aider ce matin.

    Je met ce topic en Résolu !


    Pour d'autres personne qui aurait le problème, voila le programme comple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
    		Rectangle bounds = env.getMaximumWindowBounds();
    		this.setMaximizedBounds(bounds); 
    		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    		GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].setFullScreenWindow(this);
    		this.setResizable(false);
    		this.setVisible(true);

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

Discussions similaires

  1. Enlever les bordures d'un tableau
    Par tochbee dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/08/2006, 20h43
  2. enlever les 0 devant une chaine
    Par linux dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/03/2006, 11h06
  3. enlever les '0' devant une chaine
    Par linux dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/03/2006, 19h12
  4. [VBA-E]enlever les liens d'une requete externe
    Par arnogef dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/02/2006, 14h21
  5. algorithme pour enlever les occurences d'une liste
    Par bendenice dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 08/02/2006, 23h28

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