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 :

Centrer un élément dans une JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chasseur Alpin
    Inscrit en
    Mars 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chasseur Alpin

    Informations forums :
    Inscription : Mars 2013
    Messages : 28
    Points : 19
    Points
    19
    Par défaut Centrer un élément dans une JFrame
    Bonjour,
    J'ai créer une petite classe pour vous montrer mon problème.

    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
    import java.awt.Color;
    import java.awt.Graphics;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class TestCentrage {
     
    	public static void main(String[] args) {
     
    		JFrame fen = new JFrame();
    		Pan pan = new Pan();
     
    		fen.setTitle("Test le Centrage");
    		fen.setSize(600,600);
    		fen.setVisible(true);
    		fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		fen.setContentPane(pan);
    		}
    	}
     
     
    class Pan extends JPanel {
     
    	public void paintComponent (Graphics g) {
     
    		g.setColor(Color.black);
    		g.fillRect((600/2)-(500/2), (600/2)-(500/2), 500,500);
    		}
    	}
    Je ne comprend pas pourquoi le carré n'est pas centré dans ma fenêtre.
    Voici ce que ça donne: http://hpics.li/081c77f
    Quelqu'un aurait t'il une idée du pourquoi?
    Merci.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Chasseur Alpin
    Inscrit en
    Mars 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chasseur Alpin

    Informations forums :
    Inscription : Mars 2013
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Pour ceux que ça intéresse en réalité j'ai bien une fenêtre de 600 x 600 mais dans la quel sont ajouter les bordures et le titre donc au final il n'y à que 584 x 562 de pixel util.

    La solution :
    Utiliser setPreferredSize

    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
    import java.awt.Color; 
    import java.awt.Dimension; 
    import java.awt.Graphics; 
    import javax.swing.JFrame; 
    import javax.swing.JPanel; 
     
    public class TestCentrage { 
     
     public static void main(String[] args) { 
     
      JFrame fen = new JFrame(); 
      Pan pan = new Pan(); 
      int hauteur = 600; 
      int largeur = 600; 
     
      fen.setTitle("Test le Centrage"); 
      pan.setPreferredSize(new Dimension(600,600)); 
      fen.add(pan); 
      fen.pack(); 
      fen.setVisible(true); 
      fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      fen.setContentPane(pan); 
      } 
     } 
     
     
    class Pan extends JPanel { 
     
     public void paintComponent (Graphics g) { 
     
      g.setColor(Color.black); 
      g.fillRect((600/2)-(500/2), (600/2)-(500/2), 500,500); 
      System.out.println("Largeur = " + getWidth() + " Hauteur = " + getHeight()); 
      } 
     }
    Et la nous avons bien 600x600 de pixel utile pour une fenêtre qui au final fait 638 x 616 ( et oui y'a les bordures en plus).

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

Discussions similaires

  1. Centrer un GridLayout dans une JFrame
    Par Gueuz dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 28/11/2011, 09h46
  2. [CR 10] Centrer verticalement un élément dans une boîte
    Par Giovanny Temgoua dans le forum SAP Crystal Reports
    Réponses: 10
    Dernier message: 07/04/2005, 14h25
  3. Gestion de menu, JPanels dans une JFrame
    Par Doc.Fusion dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/12/2004, 18h27
  4. [JFrame] affichage de component et d'image dans une JFrame
    Par Joeleclems dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 08/10/2004, 16h17
  5. Centrer le texte dans une TStringGrid
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h01

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