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

SWT/JFace Java Discussion :

[SWT] Deux colonnes prenant toute la largeur


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Par défaut [SWT] Deux colonnes prenant toute la largeur
    Bonjour à toute la communauté !

    Je me permets juste de venir vous poser une petite question. En fait, je dois réaliser en SWT deux colonnes de boutons.
    • Ces colonnes doivent avoir la même taille (jusque là ça va) :

    • Les boutons aussi (ça va toujours là) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    |[ BOUTON1 ]|[ BOUTON2 ]|
    |[ BOUTON3 ]|[ BOUTON4 ]|
    • Il faut aussi que les colonnes se divisent à parts égales toute la largeur disponible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {|[    BOUTON1    ]|[    BOUTON2    ]|}
    {|[    BOUTON3    ]|[    BOUTON4    ]|}
    C'est là que je bloque. En effet, mes deux colonnes de boutons ne remplissent pas tout l'espace disponible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {|[ BOUTON1 ]|[ BOUTON2 ]|            }
    {|[ BOUTON3 ]|[ BOUTON4 ]|            }
    Merci d'avance pour votre aide !

    Avec mes respectueuses salutations.

    Altrensa

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Tu peux passer par un TableColumnLayout. Ce layout se charge de donner une taille à tes colonnes. Jette un œil sur la javadoc que j'ai mis pour avoir une explication sur cette classe.

    Voilà, à+
    Gueritarish

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Par défaut
    Bonjour et merci Gueritarish pour ta réponse,

    J'ai oublié de préciser que c'étaient des colonnes de boutons (donc symboliques, un simple GridLayout avec 2 colonnes). Par conséquent, je ne suis pas dans une table et ne peut donc pas utiliser les éléments qui s'appliquent aux tableColumn.

    Merci quand même et désolé pour le manque de précision

    Cordialement,

    Altrensa

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Par défaut
    Voici le code de mes quatre derniers essais infructueux :

    • Essai 1 :
    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
    final Composite cp = new Composite(parent, SWT.FILL); 
    final FillLayout fl = new FillLayout(SWT.HORIZONTAL);
    cp.setLayout(fl); 
    cp.layout();
     
    final Composite cpGauche = new Composite(parent, SWT.NONE); final FillLayout flGauche = new FillLayout(SWT.VERTICAL); cpGauche.setLayout(flGauche);
    createCommentairesInternesButton(cpGauche, T.t("&1. Commentaires internes"));
    createDocsAttachesButton(cpGauche, getDocButtonLabel());
     
    final Composite cpDroit = new Composite(parent, SWT.NONE); final FillLayout flDroit = new FillLayout(SWT.VERTICAL); 
    cpDroit.setLayout(flDroit);
    createActionsCorrectivesButton(cpDroit, T.t("&2. Actions correctives"));
    createAccesTraceButton(cpDroit, T.t("&4. Accès à la trace"));
     
    cpDroit.layout(); 
    cpGauche.layout();
    return cp;
    • Essai 2 : Idem avec tous les ".layout()" à la fin

    • Essai 3 :
    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
    final Composite boutons = new Composite(parent, SWT.NONE);
    boutons.setLayout(new GridLayout(2, true));
     
    final Composite gch = new Composite(boutons, SWT.NONE);
    gch.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    gch.setLayout(new GridLayout());
    createCommentairesInternesButton(gch, T.t("&1. Commentaires internes"));
    createDocsAttachesButton(gch, getDocButtonLabel());
    gch.pack();
     
    final Composite dt = new Composite(boutons, SWT.NONE);
    dt.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    dt.setLayout(new GridLayout());
    createActionsCorrectivesButton(dt, T.t("&2. Actions correctives"));
    createAccesTraceButton(dt, T.t("&4. Accès à la trace"));
    dt.pack();
     
    boutons.pack();
    return boutons;
    • Essai 4 : Idem sans les ".pack()"


    PS : createCommentairesInternesButton, createDocsAttachesButton, createActionsCorrectivesButton, createAccesTraceButton créent simplement des boutons.

    Merci d'avance de votre précieuse aide,

    Altrensa

  5. #5
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Ok, je comprends mieux.
    Pour faire ce que tu veux, il faut modifier les GridData que tu donnes aux boutons...
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /*
     * Le style SWT.FILL va indiquer au layout que l'élément peut prendre
     * "toute" la place disponible. Le SWT.FILL n'est appliqué que sur le
     * premier paramètres car c'est pour l'indication horizontale. Le premier
     * booléen (pour l'indication horizontale aussi) va indiquer au layout que
     * toute la place doit être occupé.
     */
    GridData buttonData = new GridData(SWT.FILL, SWT.TOP, true, false);
    Il te faut ensuite appliquer ce style à tous tes boutons.
    Si tu rencontres un problème, n'hésite pas à revenir ici. Par contre, n'hésite pas, non plus, à poster du code

    Voilà, à+
    Gueritarish

    [EDIT] : Merci pour le code, mais c'est justement le code de tes boutons qui est intéressant

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Par défaut
    Merci Gueritarish pour ta réponse. Je crois que nos codes se sont croisés

    Je comprends ton conseil mais il semblerait qu'il n'y ait pas de ".setLayoutData(...)" sur les boutons. Je ne peut donc pas mettre le GridData que tu m'as donné directement sur ceux-ci.

    Pour en revenir au code des boutons, il se trouve que ce sont des éléments ButtonWidget de notre framework d'entreprise. Ils sont donc des "extends" ou "implements" d'éléments internes et ce, sur plusieurs niveaux.

    Je sais pas si cela t'aide beaucoup mais je ne peux pas diffuser toute la pyramide d'éléments internes étendus ou implémentés par ce bouton. Par contre, si tu as besoin de savoir quelque chose de précis, je regarde et te réponds tout de suite.

    Encore merci pour le temps que tu me consacres.

    Cordialement,

    Altrensa

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Par défaut
    Peut-être veux-tu que je mettes chaque bouton dans un Composite avec ce que tu me conseilles comme GridData ?
    Je vais essayer !

    Merci

    Altrensa

  8. #8
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Attends, tes boutons, sont ButtonWidget interne, mais ils doivent bien implémenter un élément SWT non? Donc, soit il étend la classe Control et là, c'est bon, soit il étend la classe Widget et là, c'est mort...

    Mettre tes boutons dans des Composite peut peut-être t'aider si tu donnes à ton Composite un FillLayout. A tester.

    Voilà, à+
    Gueritarish

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

Discussions similaires

  1. Menu horizontal prenant toute la largeur et centré
    Par alex2746 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/05/2015, 18h22
  2. [XL-2007] Classement sur deux colonnes en mettant une certaine valeur toute à la fin
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/06/2011, 19h11
  3. Image sur toute la largeur de la page dans un texte double colonne
    Par rabbi_jaccob dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 6
    Dernier message: 24/04/2009, 09h01
  4. Figure sur toute la largeure sur texte double colonnes
    Par air_spirit dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 11/06/2008, 14h47
  5. Figure sur toute la largeur dans texte à deux colonnes
    Par jeannot1984 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 14/12/2007, 13h00

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