Partage
  • Partager sur Facebook
  • Partager sur Twitter

Centrer une fenetre

Sujet résolu
    10 septembre 2008 à 10:58:42

    Bonjour, je continue toujours le tuto de cysboy et j'aimerai centrer une fenêtre, avec l'exemple donné dans le tuto, la fenêtre est bien centré, mais ici non.

    import javax.swing.*;
    import java.awt.GridLayout;
    import java.awt.BorderLayout;
    public class Essai1 {
      // Déclaration de tous les composants de la calculatrice.
      JPanel contenuFenêtre;
      JTextField entrée1;
      JTextField entrée2;
      JTextField entrée3;
      JLabel label1;
      JLabel label2;
      JLabel label3;
      JButton Parcourir1;
      JButton Parcourir2;
      JButton Parcourir3;
      JButton Calculer;
      JPanel panneau;
    
      // Le constructeur crée les composants en mémoire
      // et les ajoute au cadre en utilisant une combinaison 
      // de Borderlayout et Gridlayout
      Essai1() {
        contenuFenêtre = new JPanel();
    		
        // Affecte un gestionnaire de présentation à ce panneau
        BorderLayout dispositionl = new BorderLayout(); 
        contenuFenêtre.setLayout(dispositionl);
    
        // Crée le champ d'affichage et le positionne dans   
        // la zone nord de la fenêtre
        Calculer = new JButton("Calculer");
        contenuFenêtre.add("South", Calculer);
         
        // Crée les boutons en utilisant le constructeur de
        // la classe JButton qui prend en paramètre le libellé 
        // du bouton 
        Parcourir1 = new JButton("Parcourir");
        Parcourir2 = new JButton ("Parcourir");
        Parcourir3 = new JButton ("Parcourir");
        label1 = new JLabel("Fichier 1 :");
        label2 = new JLabel("Fichier 2 :");
        label3 = new JLabel ("Destination :");
        entrée1 = new JTextField (15);
        entrée2 = new JTextField (15);
        entrée3 = new JTextField (15);
        
     // Crée le panneau avec le quadrillage qui contient
        // les 12 boutons - les 10 boutons numériques et ceux
        // représentant la virgule et le signe égale
        panneau = new JPanel();
        GridLayout disposition2 = new GridLayout(3,3,5,5); 
        panneau.setLayout(disposition2);
    
        // Ajoute les contrôles au panneau panneauChiffres
        panneau.add(label1);
        panneau.add(entrée1);
        panneau.add(Parcourir1);
        panneau.add(label2);
        panneau.add(entrée2);
        panneau.add(Parcourir2);
        panneau.add(label3);
        panneau.add(entrée3);
        panneau.add(Parcourir3);
    
        // Ajoute panneauChiffres à la zone centrale de la 
        // fenêtre
        contenuFenêtre.add("Center", panneau);
    
        // Crée le cadre et lui affecte son contenu	               
        JFrame frame = new JFrame("Essai1");
        frame.setContentPane(contenuFenêtre);
        
        //centrer l'objet
        frame.setLocationRelativeTo(null);
        //Terminer le processus lorsqu'on clique sur "Fermer"
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
        // Affecte à la fenêtre des dimensions suffisantes pour	  
        // prendre en compte tous les contrôles
        frame.pack();
    
        // Enfin, affiche la fenêtre
        frame.setVisible(true);
      }
    
      public static void main(String[] args) {
        Essai1 calc = new Essai1();
      }
    }
    


    J'ai l'impression que le debut de la fenetre est bien centrée, mais j'aimerai que la fenetre entiere soit centrée.

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      10 septembre 2008 à 12:07:15

      Salut !
      Utilise la fonction setLocationRelativeTo() avec null en paramètre sur ta fenêtre.
      • Partager sur Facebook
      • Partager sur Twitter
      Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
        10 septembre 2008 à 13:40:40

        73 //centrer l'objet
        74 frame.setLocationRelativeTo(null);

        c'est deja fait mais ca marche tjrs pas :(
        • Partager sur Facebook
        • Partager sur Twitter
          12 septembre 2008 à 12:32:24

          Ah ok !
          En fait tu demandes à la centrer avant le pack..!
          Donc les dimensions utilisées pour centrer sont fausses.

          Je pense que c'est ça ; met juste le
          frame.pack();
          
          avant le
          frame.setLocationRelativeTo(null);
          

          Bonne chance ;)
          • Partager sur Facebook
          • Partager sur Twitter
          Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
            12 septembre 2008 à 12:36:33

            oui c'était bien ca!
            Merci bcp! :)
            • Partager sur Facebook
            • Partager sur Twitter
              12 janvier 2011 à 21:34:23

              Tu peux aussi:
              -Nom de Variable
              ..enlever les accents.
              ..enlever les majuscules au début.
              ...Pourquoi? la majuscule est réservé au nom de classe...

              bonne continuation.
              • Partager sur Facebook
              • Partager sur Twitter

              Centrer une fenetre

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown