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 :

FlowLayout sans retour automatique à la ligne


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 3
    Par défaut FlowLayout sans retour automatique à la ligne
    Bonjour,

    Je voudrais ajouter des composants à un JPanel à la manière d'un FlowLayout mais SANS passage à la ligne automatique et sans utilisé la méthode setBounds des composants que j'ajoute.

    Voila, j'espère que quelqu'un aura une idée, merci.

  2. #2
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    Utilise un GridBagLayout :-S

    chaque jour je viens, y'a des probleme avec les layout manager

    mais tu va avoir des probleme de toute facon.

    si tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    GridBagConstraint gbc  = new();
    gbc.gridx = GBC.RELATIVE;
    gbc.gridy = 0;
    GridBagLayout gbc = new();
    gbl.setConstraint(gbc);
    container.add(comp1)
    container.add(comp2)
    container.add(comp3)
    ...

    tes composant vont avoir une taille. si le container est capable de leur donner leur taille prefere a tes composant il leur donnera. sinon, il leur donner leur taille minimale. si il est pas capable de donner les taille minimale et ben il commencera a effacer une partie de tes composant; mais il seront toujours sur une seule ligne. comme tu fixe gridy il changeront pas de ligne :-)

    je sais pas si c clair

  3. #3
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Dans ce cas précis je pencherais plutôt pour un BoxLayout horizontal, plutôt que de directement sortir l'artillerie lourde... (Le BoxLayout le fait en deux coups de cuillère à pot, pas besoin de s'emmerder avec les constraints quand on peux les éviter)p

    Sinok, adepte du moindre effort
    D'ailleurs sur ce je vais piquer un roupillon

  4. #4
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    le resultat sera pas le meme si tu utilise le GridBagLayout ou le BoxLayout.

    le GBL centrera tout dans le container (horizontal et vertical par default)

    le BoxLayout (par default) alignera a gauche.

    quand tu diminuera la taille du container le BoxLayout effacera les composant en commencant par le dernier ajouter.

    le GBL diminuera petit a petit la taille du premier composant que tu a ajoute et quand y'aura plus moyen de l'afficher il l'effacera. puis diminuera la taille du suivant ...

    mais ta raison BoxLayout c'est bien aussi :-)

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 3
    Par défaut
    Merci à vous deux pour vos réponses.

    Vos deux méthodes fonctionnent dans les cas courants. Mais dans mon cas, les composants que j'ajoute à mon container sont redimensionnables. Je m'explique : j'ai des listener sur ces composants qui me permettent de les redimensionnés avec la souris en cours d'utilisation en modifiant leur preferredSize().
    En utilisant l'une ou l'autre des deux méthodes cités plus haut, le redimensionnement fonctionne mal.
    Au final je pense que je vais utiliser un Layout null et redimensioner mes composants avec la méthode setBounds() ou je vais peut etre faire mon propre LayoutManager.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 3
    Par défaut
    J'ai finalement créer mon propre LayoutManager et ça fonctionne très bien.
    Pour le créer je me suis inspirer du tutoriel de sun sur les CustomLayout:
    http://java.sun.com/docs/books/tutor...ut/custom.html

    Voila, merci encore pour vos précédentes réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. retour automatique la ligne
    Par jalalnet dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 11/06/2011, 12h08
  2. GridPanel : retour automatique à la ligne
    Par DiverSIG dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 27/04/2011, 22h52
  3. Réponses: 7
    Dernier message: 04/02/2011, 11h50
  4. Ecrire sans retour a la ligne
    Par mkrzemin dans le forum Général Python
    Réponses: 3
    Dernier message: 13/04/2008, 20h25
  5. [GNU GPL] licence sans retour à la ligne
    Par TabrisLeFol dans le forum La taverne du Club : Humour et divers
    Réponses: 24
    Dernier message: 03/12/2006, 16h56

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