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

AWT/Swing Java Discussion :

Difficulté à configurer la taille d'un panel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Par défaut Difficulté à configurer la taille d'un panel
    Bonjour, voici :

    Je suis présentement entrain d'apprendre le Java (version 6) et j'essaie de tout simplement définir une taille pour un panel mais voilà, il refuse tout simplement de réduire sa taille, il est toujours de la même taille que le frame.

    On dirait que le l'interpréteur ne voit pas mon setSize()

    Un peu d'aide svp serait grandement apprécié...

    PS. Je n'ai pas mis ici ma classe Main.


    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
    package charivari;
     
    import javax.swing.*;
    import java.awt.*;
     
    /**
     *
     * @author yan.hudon
     */
    public class Charivari extends JFrame {
        public Charivari() {
            super("Bienvenue à Charivari v1.0");
            this.setSize(800,600);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            //add the Menu
            JMenuItem menuItem1 = new JMenuItem("Nouvelle partie");
            JMenuItem menuItem2 = new JMenuItem("Quitter");
            JMenuItem menuItem3 = new JMenuItem("Règles");
     
            JMenu menu1 = new JMenu("Fichier");
            menu1.add(menuItem1);
            menu1.add(menuItem2);
            JMenu menu2 = new JMenu("Aide");
            menu2.add(menuItem3);
     
            JMenuBar menuBar = new JMenuBar();
            menuBar.add(menu1);
            menuBar.add(menu2);
            this.setJMenuBar(menuBar);
     
            //add the interface     
            JPanel timePanel = new JPanel(new FlowLayout());
            //timePanel.setLocation(100, 100);
            timePanel.setSize(30,30);
            timePanel.setBackground(Color.green);
            timePanel.setVisible(true);
     
            this.add(timePanel);
     
            //this.setLayout(new BorderLayout());
            //this.add(timePanel, BorderLayout.NORTH);
            this.setVisible(true);    
        }
    }

  2. #2
    Membre éclairé Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Tu utilises un flowLayout, donc l'affectation de taille n'a aucun effet.

    Il faut soit supprimer carrément le Layout (setLayout(null))) et du coup, tu fixes la taille avec la méthode setBounds (x,y,width,height)

    Compte tenu que tu utilises un FlowLayout, peut-être que tu peux te permettre cette solution. Elle présente l'inconvénient de ne pas conserver les rapports si tu redimensionnes ta fenêtre.

    Sinon, télécharge un JAR qui contienne un Layout plus pratique que le flowLayout, places le dans ton Classpath, personnellement, j'utilise TableLayout qui est simple et pratique. Tu ne peux pas fixer avec la taille de tes composants, simplement leur donner une proportion à respecter, ce qui évite les soucis lors de redimensionnement de fenêtre.

    Voilà, bon courage ;-)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Par défaut
    Ah....

    En effet, un :

    (this représentant mon frame) juste avant de créer et de placer mon Panel a solutionné mon problème.

    Merci encore pour la réponse rapide!

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Se débarrasser du layout ne me semble pas une bonne méthode à long terme. ( Comment vont s'organiser tes composants ?)

    Le JPanel n'a pas de taille, c'est là tout son intérêt. Si ton problème est l'affichage par défaut, alors tu peux utiliser setPreferredSize() qui va donner la taille à utiliser de préférence.

    Enfin, si ton problème est résolu n'oublie pas un clic sur le bouton "résolu", en bas de page. Merci.

Discussions similaires

  1. Ajustement de la taille d'un panel !
    Par LestoK dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/08/2008, 17h44
  2. Problème taille d'un panel dans un panel dans un panel.
    Par zuzuu dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/08/2008, 10h19
  3. Réponses: 6
    Dernier message: 15/05/2008, 12h31
  4. Difficulté à configurer les droits d'acces pour PgAdmin
    Par Pigoulou dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 22/12/2005, 16h04
  5. [Struts] Configurer la taille d'un textbox
    Par cosmos38240 dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/11/2005, 14h40

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