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 :

Problème de GridLayout: espacement "sporadique"


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut Problème de GridLayout: espacement "sporadique"
    Bonjour à tous.

    Voilà je suis ce qu'on appelle communément un bon gros newbie concernant swt, et je me retrouve avec un code énorme présentant une interface entièrement en...swt ><

    Mon premier problème est que je dois gérer l'affichage de différente toolbar. De ce côté là ça va à peu près, mais je pèche lorsque je dois ajouter leur contenu. En effet, je dois avoir
    une organisation un peu spéciale, c'est à dire;

    un bouton, un label
    un separateur
    un bloc de bouton
    un espace vide, un separateur
    un bouton

    J'ai essayé de gérer ça avec un gridLayout, comme en swing, mais je ne parviens pas à dire à mes boutons "met toi là, dans la colonne 5 (par exemple)".
    Comment puis-je faire ça?

  2. #2
    Membre éclairé Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 582
    Par défaut
    Bonjour,

    Pour les placements tu peux faire un tour sur ce tutoriel
    Avec le GridData, tu as énormément de possibilités

    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
     
    	public void createControl(Composite parent) {
    		Composite composite = new Composite(parent, SWT.NONE);		
    		GridLayout gl = new GridLayout();
    	    int ncol = 6;
    	    gl.numColumns = ncol;
    	    composite.setLayout(gl);
     
    	    // 1er ligne  avec 6 boutons 
    	    Button button1 = new Button(composite, SWT.PUSH);
    	    button1.setText("Button 1");
    	    GridData gd = new GridData(GridData.FILL,GridData.CENTER,true,false);
    	    button1.setLayoutData(gd);
     
    	    Button button2 = new Button(composite, SWT.PUSH);
    	    button2.setText("Button 2");
    	    gd = new GridData(GridData.FILL,GridData.CENTER,true,false);
    	    button2.setLayoutData(gd);
     
    	    Button button3 = new Button(composite, SWT.PUSH);
    	    button3.setText("Button 3");
    	    gd = new GridData(GridData.FILL,GridData.CENTER,true,false);
    	    button3.setLayoutData(gd);
     
    	    Button button4 = new Button(composite, SWT.PUSH);
    	    button4.setText("Button 4");
    	    gd = new GridData(GridData.FILL,GridData.CENTER,true,false);
    	    button4.setLayoutData(gd);
     
    	    Button button5 = new Button(composite, SWT.PUSH);
    	    button5.setText("Button 5");
    	    gd = new GridData(GridData.FILL,GridData.CENTER,true,false);
    	    button5.setLayoutData(gd);
     
    	    Button button6 = new Button(composite, SWT.PUSH);
    	    button6.setText("Button 6");
    	    gd = new GridData(GridData.FILL,GridData.CENTER,true,false);
    	    button6.setLayoutData(gd);
     
                //Un séparateur
    	    createLine(composite, nColumns);
     
    	    // 2eme ligne avec 3 boutons
    	    Button button7 = new Button(composite, SWT.PUSH);
    	    button7.setText("Button 7");
    	    gd = new GridData(GridData.BEGINNING,GridData.CENTER,true,false);
    	    gd.horizontalSpan=2;
    	    button7.setLayoutData(gd);
     
    	    Button button8 = new Button(composite, SWT.PUSH);
    	    button8.setText("Button 8");
    	    gd = new GridData(GridData.CENTER,GridData.CENTER,true,false);
    	    button8.setLayoutData(gd);
     
    	    Button button9 = new Button(composite, SWT.PUSH);
    	    button9.setText("Button 9");
    	    gd = new GridData(GridData.END,GridData.CENTER,true,false);
    	    gd.horizontalSpan=3;
    	    button9.setLayoutData(gd);
     
    	    setControl(composite);	
    	}
     
    	/**
             * Création d'une ligne de séparation
             * @param parent
             * @param ncol
             */
    	private void createLine(Composite parent, int ncol) {
    		Label line = new Label(parent, SWT.SEPARATOR|SWT.HORIZONTAL|SWT.BOLD);
    		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
    		gridData.horizontalSpan = ncol;
    		line.setLayoutData(gridData);
    	}
    Pour placer tes widgets, il suffit de jouer sur les horizontalSpan et les horizontalAlignment.
    La méthode createLine permet de dessiner une ligne de séparation

    @++
    Vince

Discussions similaires

  1. Problème radio button espaces et quotes
    Par gamiel dans le forum Langage
    Réponses: 27
    Dernier message: 21/12/2011, 11h52
  2. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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