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

Interfaces Graphiques en Java Discussion :

PB positionnement gridLayout


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut PB positionnement gridLayout
    Salut tous,

    J'ai décidé de faire pour m'amuser un petit carnet d'adresse .
    J'ai décidé de me faire via des onglets.
    Avec chaque contact que je récupère de ma base de données, je crée un JPanel avec ses info nommé PanContact.
    Chaque PanContact je l'ajoute a mon PanPrincipal

    Mon probleme:

    1.Je veux pouvoir affiché mes PanContact de sorte que le nombre de PanContact par ligne soit fixé à 4 et le nombre de ligne en fonction du nombre de contact de ma base.

    2.Lorsque je j'ai un nombre important de contact, mes PanContact se réduisent ...

    Moi j'ai utilisé un GRIDLAYOUT en faisant panPrincipal.setLayout(new Gridlayout(4,2)), mais ca ne me donne le resultat que je souhaite

    voici a que je veux que ca ressemble :



    Je vous remercie d'avance

  2. #2
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Par défaut
    peut être que tu doit mettre le layout du frame à null aprés tu place les panels

  3. #3
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    mais ca ne me donne le resultat que je souhaite
    Et qu'es ce que ça te donne ?
    Donne nous ton code pour qu'on puisse t'indiquer les modifications à faire.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    donc voila :
    class xtend JScroolpane
    JPanel pan;

    pan = new JPanel(new GridLayout(5,5));

    Je pense que le probleme viens du fait que je mette un Gridlayout.

    ...

    Je m'explique mal :
    Ce que je veut pouvoir faire :

    Dans mon panel principal, pouvoir mettre autant de panContact que je veux (remplissage par boucle), tout en sachant que je veux avoir au maximum 4 panContact les un a coté des autres

    Admettons que je decide d'afficher 20 PanContact, je devrais avoir 5 lignes de 4 contacts.

    Je ne saias pas si je suis clair ?

  5. #5
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Il faut que tu utilise un GridBagLayout.
    Avec, tu n'as pas besoin de renseigner le nombre de colonnes et de lignes au départ.
    Tu ajoutes juste tes panels et il s'ajouteront dynamiquement.

    Et pour que le scroll s'active SEULEMENT si il y a plus de 4 contact, il faut joueur avec les setPreferenceSize(Dimension) de tes panels.
    Je m'explique. Soit la taille de tes panels = (50,50)
    Il suffit que la taille de ta fenêtre soit de (100,100) (sans les bordures). Comme ça ta fenêtre peux contenir 4 panels -> donc pas de scroll
    Par contre si tu à 5 panel, ça dépasse la taille de la fenêtre et le scroll s'activera automatiquement.

    Edit : Je trouve ça super méga pas pratique le double scroll (horizontal et vertical). Je ne mettrais que le vertical, mais c'est un avis personnel.

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    Faut il que je place mes panelcontact?
    parce que la en changeant le gridlayout par un gridbaglayout
    j'ai 3 panelcontact qui s'affiche les un a coté des autre et il n'ont pas la meme taille ?

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    Il faut que tu utilise un GridBagLayout.
    Avec, tu n'as pas besoin de renseigner le nombre de colonnes et de lignes au départ.
    Tu ajoutes juste tes panels et il s'ajouteront dynamiquement.

    Et pour que le scroll s'active SEULEMENT si il y a plus de 4 contact, il faut joueur avec les setPreferenceSize(Dimension) de tes panels.
    Je m'explique. Soit la taille de tes panels = (50,50)
    Il suffit que la taille de ta fenêtre soit de (100,100) (sans les bordures). Comme ça ta fenêtre peux contenir 4 panels -> donc pas de scroll
    Par contre si tu à 5 panel, ça dépasse la taille de la fenêtre et le scroll s'activera automatiquement.

    Edit : Je trouve ça super méga pas pratique le double scroll (horizontal et vertical). Je ne mettrais que le vertical, mais c'est un avis personnel.
    Jr suis d'accord avec toi pour le double scroll! c'est pour ca que je veux que ca bloc max a 4 de largeur et une hauteur indéfinie

  8. #8
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    il n'ont pas la meme taille ?
    A tu définie le preferenceSize?
    Il nous faut plus de précision, envoie ton code
    Un début de piste ci-dessous
    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
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
     
    /**@author : Ivelios */
    public class Contact extends JPanel implements ActionListener{
        private GridBagConstraints gbc = new GridBagConstraints();
        private GridBagLayout layout = new GridBagLayout();
        private int positionContact =0;
     
        public Contact(){
            super();
            this.setLayout(layout);
            this.setPreferredSize(new Dimension(200,200));
            Timer t = new Timer(500,this);
            t.start();
        }
     
        public void actionPerformed(ActionEvent e) {
          JButton b = new JButton(positionContact+"");
           b.setPreferredSize(new Dimension(50,50));
           b.setMinimumSize(new Dimension(50,50));
           this.gbc.gridx = positionContact %4;
           this.gbc.gridy = positionContact /4;
           this.layout.setConstraints(b, gbc);
           this.add(b);
           positionContact++;
           this.updateUI();
        }
     
        public static void main(String[] args){
            JFrame f = new JFrame();
            f.setTitle("Menu");
            f.add(new Contact());
            f.pack();
            f.setResizable(false);
            f.setLocationRelativeTo(null);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setVisible(true);
     
        }
     
     
    }

  9. #9
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    Pas mal la ptite "demo" je vais m'en servir je pense.
    Mais j'ai vu qu'avec un flowlayout ca renvoie automatiquement a la ligne aussi ?!

  10. #10
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    C'est exact! je n'y avais pas pensé, mais un flowlayout devrait suffire

  11. #11
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    C'est exact! je n'y avais pas pensé, mais un flowlayout devrait suffire
    Je te remercie le flow est très suffisant ! mais je vais me pencher sur ce que tu m'a dis : ca me parrait très pro

Discussions similaires

  1. Positionnement d'un JButton dans un GridLayout
    Par adissa357 dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 11/11/2013, 01h28
  2. Positionnement avec GridLayout
    Par Galevsky dans le forum SWT/JFace
    Réponses: 6
    Dernier message: 19/02/2008, 21h55
  3. LinCVS - Comment positionner CVSROOT ?
    Par sequentaire dans le forum Réseau
    Réponses: 3
    Dernier message: 10/07/2003, 06h53
  4. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 17h48
  5. [TSynMemo] Positionnement par ligne et colonne
    Par Mercilius dans le forum Composants VCL
    Réponses: 9
    Dernier message: 16/04/2003, 16h22

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