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 :

[Debutant]Probleme dimensionnement JPanel dans CardLayout


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Par défaut [Debutant]Probleme dimensionnement JPanel dans CardLayout
    Bonsoir,

    j'ai quelques souci avec le dimensionnement d'un formulaire de saisie.
    J'ai crée une classe NewClient. Cette classe est une sous-classe de JPanel. Celle-ci contient des JLabel et des JTextField ainsi qu'un bouton valider. J'ai utilisé comme gestionnaire GridBagLayout.
    Ensuite dans mon application, j'insère une nouvelle instance de cette classe dans un CardLayout, me permettant ainsi d'afficher plusieurs formulaires différents.
    Première question:
    Est-ce que le JPanel occupe forcément tout l'espace attribué dans le CardLayout ?

    Si non, comment fait-on pour définir la taille de l'instance de ma classe car avec la méthode setPreferredSize, les résultats ne sont pas fameux.

    Si oui, je pense utiliser un JPanel supplémentaire que j'ajoute au cardLayout. A ce JPanel, je définis un BorderLayout. Et au centre, j'ajoute l'instance de ma classe NewClient.
    Meme question, est-il possible de définir la taille de l'instance de ma classe ?

    Merci d'avance pour votre aide.
    ++

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Par défaut
    Snif Snif Pas de réponse.
    En fait, j'aimerais savoir si le JPanel rajouté au CardLayout occupe obligatoirement tout l'espace ?

    Merci.
    ++

  3. #3
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Citation Envoyé par etiennegaloup
    Snif Snif Pas de réponse.
    En fait, j'aimerais savoir si le JPanel rajouté au CardLayout occupe obligatoirement tout l'espace ?
    Il faudrait que tu mettes les parties de ton code qui posent problème pour avoir plus de réponses...

    Comment tu affiches tout ça ? Un JFrame ? Une JApplet ? Comment intègres-tu ton panel dans ton frame ? Quel layout utilises-tu pour le contentPane ? En principe, oui le JPanel devrait occuper tout l'espace mais comme on ne sait pas ce que tu fais il est difficile de répondre.

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Par défaut
    Hello,

    J'ai une classe Gui:

    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
    119
    120
    121
    122
    123
    124
    125
     
    public class Gui extends JFrame {
    private JPanel paneOfFrame;
    private CardLayout layoutOfDisplay;
    private AddTransactionGui addTransacGui;
     
    public Gui() {
         super("Titre de Ma Fenêtre");
         setSize(600,600);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
     
         layoutOfDisplay=new CardLyaout();
         paneOfFrame=new JPanel(layoutOfDisplay);
     
         addTransacGui=new AddTransacGui();
         paneOfFrame.add(addTransacGui,"AddTransac");
    }
    [..]
    class AddTransacGui {
    class AddTransactionGui extends JPanel {
            JLabel lblEnTete,lblDate,lblOrdre,lblType,lblOper,lblMontt,lblCategorie;
            JTextField txtDate,txtOrdre,txtMontt;
            JComboBox cmbType,cmbOper,cmbCategorie;
            JButton btonValid;
     
            /** Creates a new instance of AddTransactionGui */
            public AddTransactionGui() {
                GridBagLayout layout=new GridBagLayout();
                GridBagConstraints constraints=new GridBagConstraints();
                constraints.insets=new Insets(5,5,5,5);
     
                //panePeriode:Conteneur des composants
                setLayout(layout);
     
                lblEnTete=new JLabel("Ajout d'une nouvelle transaction",JLabel.CENTER);
                lblEnTete.setForeground(Color.DARK_GRAY);
                lblEnTete.setFont(new Font("Verdana", Font.ITALIC,16));
                ConstraintsDefinition.buildConstraints(constraints,0,0,2,1,100,25);
                layout.setConstraints(lblEnTete,constraints);
                add(lblEnTete);
     
                constraints.anchor=GridBagConstraints.EAST;
     
                constraints.fill=GridBagConstraints.BOTH;
                lblDate=new JLabel("Date :",JLabel.LEFT);
                ConstraintsDefinition.buildConstraints(constraints,0,1,1,1,10,5);
                layout.setConstraints(lblDate,constraints);
                add(lblDate);
     
                lblOrdre=new JLabel("Ordre :",JLabel.LEFT);
                ConstraintsDefinition.buildConstraints(constraints,0,2,1,1,10,5);
                layout.setConstraints(lblOrdre,constraints);
                add(lblOrdre);
     
                lblType=new JLabel("Type :",JLabel.LEFT);
                ConstraintsDefinition.buildConstraints(constraints,0,3,1,1,10,5);
                layout.setConstraints(lblType,constraints);
                add(lblType);
     
                lblOper=new JLabel("Opération :",JLabel.LEFT);
                ConstraintsDefinition.buildConstraints(constraints,0,4,1,1,10,5);
                layout.setConstraints(lblOper,constraints);
                add(lblOper);
     
                lblMontt=new JLabel("Montant :",JLabel.LEFT);
                ConstraintsDefinition.buildConstraints(constraints,0,5,1,1,10,5);
                layout.setConstraints(lblMontt,constraints);
                add(lblMontt);
     
                lblCategorie=new JLabel("Catégorie :",JLabel.LEFT);
                ConstraintsDefinition.buildConstraints(constraints,0,6,1,1,10,5);
                layout.setConstraints(lblCategorie,constraints);
                add(lblCategorie);
     
                constraints.anchor=GridBagConstraints.WEST;
                constraints.fill=GridBagConstraints.NONE;
     
                txtDate=new JTextField(20);
                ConstraintsDefinition.buildConstraints(constraints,1,1,1,1,90,5);
                layout.setConstraints(txtDate,constraints);
                add(txtDate);
     
                txtOrdre=new JTextField(20);
                ConstraintsDefinition.buildConstraints(constraints,1,2,1,1,90,5);
                layout.setConstraints(txtOrdre,constraints);
                add(txtOrdre);
     
                txtMontt=new JTextField(20);
                ConstraintsDefinition.buildConstraints(constraints,1,3,1,1,90,5);
                layout.setConstraints(txtMontt,constraints);
                add(txtMontt);
     
                String[] listType={"CH","CB","ES"};
                cmbType=new JComboBox(listType);
                ConstraintsDefinition.buildConstraints(constraints,1,4,1,1,90,5);
                layout.setConstraints(cmbType,constraints);
                add(cmbType);
     
                String[] listOper={"Crédit","Débit"};
                cmbOper=new JComboBox(listOper);
                ConstraintsDefinition.buildConstraints(constraints,1,5,1,1,90,5);
                layout.setConstraints(cmbOper,constraints);
                add(cmbOper);
     
                cmbCategorie=new JComboBox();
                Iterator iterListCategory=courant.getListCategory();
     
                while (iterListCategory.hasNext()) {
                    Category category=((Category)iterListCategory.next());
                    cmbCategorie.addItem(category);
                }
                ConstraintsDefinition.buildConstraints(constraints,1,6,1,1,90,5);
                layout.setConstraints(cmbCategorie,constraints);
                add(cmbCategorie);
     
                constraints.anchor=GridBagConstraints.NORTH;
     
                btonValid=new JButton("Valider");
                ConstraintsDefinition.buildConstraints(constraints,0,7,2,1,90,50);
                layout.setConstraints(btonValid,constraints);
                add(btonValid);
            }
    }
    [..]
    }
    Et donc comme je le disais mon souci est que l'instance de AddTransacGui occupe dans le cardlayout tout l'espace.
    Comment puis-je faire pour définir la taille de cette instance ?

    Merci d'avance.
    ++

  5. #5
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Oula ! T'as tout mis ça dans la même classe !

    Tu as la classe Gui qui contient la classe AddTransacGui qui contient la classe AddTransactionGui ! Je vais tester ça par curiosité et je te reviens...

  6. #6
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    As-tu essayé de compiler le code que tu fournis : t'a une faute de frappe sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layoutOfDisplay=new CardLyaout();

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Par défaut
    Oui il y a effectivement une erreur:

    la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class AddTransacGui {
    est en trop.

    Et c évidemment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    layoutOfDisplay=new CardLayout();
    Mais sinon n'ai-je pas bien fait de mettre ma class AddTransacGui comme classe interne ?

    ++

  8. #8
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Citation Envoyé par etiennegaloup
    Mais sinon n'ai-je pas bien fait de mettre ma class AddTransacGui comme classe interne ?
    Si tu es certain de ne pas en avoir besoin ailleurs dans ton programme, alors ça peut aller.

  9. #9
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Pour pouvoir tester ton code, il faudrait que tu post le code de ta méthode ConstraintsDefinition.buildConstraints()...

  10. #10
    Membre éclairé
    Inscrit en
    Juillet 2004
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 306
    Par défaut
    Salut,

    voici le code manquant:

    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
     
    import java.awt.GridBagConstraints;
     
    public class ConstraintsDefinition extends GridBagConstraints{
     
        public static final void buildConstraints(GridBagConstraints gbc,int gx,int gy,
        int gw,int gh,int wx,int wy){
            gbc.gridx=gx;
            gbc.gridy=gy;
            gbc.gridwidth=gw;
            gbc.gridheight=gh;
            gbc.weightx=wx;
            gbc.weighty=wy;
        }
    }
    Merci
    ++

Discussions similaires

  1. Différentes tailles de JPanel dans CardLayout
    Par A-Imp dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 13/12/2008, 13h39
  2. Probleme [SWING]: JPanel dans JscrollPane
    Par malandro dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 24/05/2006, 21h02
  3. Réponses: 8
    Dernier message: 14/11/2005, 11h27
  4. [Debutant] Probleme de compilation d'applet dans Eclipse
    Par nhollevilleTaf dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/07/2005, 12h21
  5. [JSP][Struts][Debutant]Probleme de liens dans pages JSP
    Par bluefox_du_974 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/12/2004, 16h17

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