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 :

BorderLayout GridLayout JPanel ? redim 1 seule ligne GridLayout?


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Par défaut BorderLayout GridLayout JPanel ? redim 1 seule ligne GridLayout?
    Bonjour à toutes et à tous,

    je viens vers vous car j'ai un soucis avec la conception de mon interface grahique ... je débute et je galère pas mal.

    Mon probleme :

    j'ai créé une fenetre JFRAME et ce que je voulais c'etait avoir en haut mon menu, (la c'est bon), et sous ce menu une image de la largeur de mon application, et sous cette image une zone dynamique qui se chargerait et qui changerait automatiquement en fonction des clics dans mon menu

    pour résumé :

    ___________________________________________
    Menu l
    ---------------------------------------------------------
    Image (par ex 80px, fixe) l
    ---------------------------------------------------------
    Ma zone dynamique en l'occurence un JScrollPane l
    pour avoir redimmensionnement possible l
    ___________________________________________l

    J'ai donc créé un JPanel nommé PanneauPpal
    et j'attache mon image au panel créé dans le build

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    PanneauPpal = new JPanel();
    imagefond = new JLabel( new ImageIcon("img/fond.jpg"));
    PanneauPpal.add(imagefond);

    Qd je clik sur un des Items menu j'ai une fonction qui affiche une table dans un GridLayout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PanneauPpal.setLayout(new GridLayout(2,1));						PanneauPpal.add(getAfficherTable());
    le probleme c'est que quand je lance mon appli, l'image se charge en haut...

    mais dès que je click pour appeler la table, mon image se décale.
    Il me semble que le gridLayout donne la meme taille au deux zone GridLayout...

    Que pouvez vous me conseiller ???

    Est il possible de définir la hauteur de la premiere zone

    Existe il pour charger ou décharger des Panel??? pour avoir une zone dynamique. car ce que j'ai trouvé comme astuce se résume à reconstruire la JPanel avec une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private void rafraichir(){
    this.setContentPane(PanneauPpal);
    }
    et detruire le contenu avant d'afficher mon formulaire par exemple...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PanneauPpal.removeAll();
    imagefond = new JLabel( new ImageIcon("img/fond.jpg"));
    PanneauPpal.add(imagefond);
    modifiecontenu();
    Merci beaucoup par avance.
    Aurore.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Par défaut Modification de l'énoncé de ma question
    Bonjour à tous et à toutes,

    en relisant mon message, je m'aperçois que je ne suis pas très clair.Je vais reprendre en 2 points.

    1) est il possible dans un JPanel avec BorderLayout de spécifier à la zone CENTER d'occuper toute la largeur de l'appli en "mettant EAST et WEST à une largeur de 0?

    en fait si j'utilise un gridLayout(1,1) c'est pour éviter ce problème c'est à dire que la Jtable que je renvoie se trouve ecrasé dans center.

    2) Pour charger dynamiquement mes différents formulaire ou résultat de recherche dans la zone centrale, je n'ai pas trouvé d'autres solutions que faire un removeAll sur le panel principal et de ensuite recharger mon image en haut et construire la suite de ma page.

    Le probleme c'est que dés lors que que je fais un setLayout GridLayout sur mon pannelPrincipal et que je désire cliquer sur un autre item du menu, il me charge l'autre page dans une autre case de ma grille et si je clique sur un autre lien du menu, il me refait une grille.

    J'espere avoir été un petit peu plus clair que pour le message précédent.

    Amic. Aurore

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, un GridLayout a forcément des cellules de tailles identiques. (sinon il faut utiliser un GridBagLayout)
    Tu pourrais utiliser un panel contenant un BorderLayout dans lequel tu mets ton image au NORD et ton JScrollPane au CENTRE.

    Si ça ne répond pas à ton besoin, regarde le lien dans ma signature et dis nous si ça répond à ce que tu veux.

    EDIT : suite à ton 2è message, je pense que le BoxLayout serait plus approprié :


  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Par défaut
    Merci morph41

    [cite]Tu pourrais utiliser un panel contenant un BorderLayout dans lequel tu mets ton image au NORD et ton JScrollPane au CENTRE.
    [/cite]

    oui en fait c'est ce que je comptais faire ... Par contre si je mets mon scrollPane au centre en l'occurence mon tableau, il n'occupe pas toute la largeur étant donnée qu'il y a EAST et WEST...

    Est il possible de parametrer un BorderLayout pour que WEST et EAST ait une largeur nulle???????

    Sinon si ce n'est pas possible, peut etre que boxlayout pourrais faire l'affaire

    Amic .

    AUrore

  5. #5
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Je viens de vérifier avec un test tout simple, quand on ne mets rien dans EAST et WEST, le CENTER prend toute la largeur, en tout cas avec ce petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static void main(String[] args) {
            JFrame frame = new JFrame("toto");
            frame.add(new JButton("titi"), BorderLayout.NORTH);
            frame.add(new JButton("tata"), BorderLayout.CENTER);
            frame.pack();
            frame.setVisible(true);
        }

Discussions similaires

  1. [GridLayout/JPanel]affichage et redimensionnement
    Par Dnasty dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/04/2006, 16h35
  2. Sélection aléatoire d'une seule ligne.
    Par Pat bol 002 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/01/2005, 19h30
  3. plusieurs enregistrements dans une seul ligne
    Par Celelibi dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/01/2005, 15h55
  4. wxWidgets : couleur de texte sur une seule ligne
    Par Oatly dans le forum wxWidgets
    Réponses: 8
    Dernier message: 05/12/2004, 19h24
  5. [JTable]Selectionner une seule ligne d'une jTable ?
    Par Maximus32 dans le forum Composants
    Réponses: 2
    Dernier message: 22/10/2004, 02h06

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