2017-10-14 13 views
0

Quelqu'un pourrait-il m'expliquer la raison de l'écart entre les deux boutons radio? J'ai même mis l'espace horizontal à 0 mais rien n'a changé.Espaces supplémentaires entre deux boutons en utilisant GridLayout

case composed: 
new Label(container, SWT.NONE); 
new Label(container, SWT.NONE); 
new Label(container, SWT.NONE); 
container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); 
container.setLayout(new GridLayout(4, false)); 

for (int j = 0; j < this.itr; j++) { 
    Button[] radioButton = new Button[answers.size()]; 
     for (int i = 0; i < answers.size(); i++) { 
      String ans = answers.get(i).getValue(); 
      radioButton[i] = new Button(container, SWT.RADIO); 
      radioButton[i].setText(ans); 

       } 
       Text[] textField = new Text[answers.size()]; 
       for (int i = 0; i < answers.size(); i++) { 
        textField[i] = new Text(container, SWT.SINGLE | SWT.BORDER); 

      for (int i = 0; i < answers.size(); i++) { 
        textField[i] = new Text(container, SWT.SINGLE | SWT.BORDER); 
       } 
} 

J'apprécierais toute explication ou solution. Screenshot of the wizard

+0

Peut-être la chaîne « taille fixe » contient des espaces blancs à droite? Vous pouvez essayer de les supprimer avec 'trim()'. –

+0

Je ne pense pas. Toutes les chaînes sont extraites d'un fichier json et elles ont la même taille. – Ben193

+0

Pourquoi il y a 3 'nouveau Label (conteneur, SWT.NONE);' en haut? Sont-ils utilisés seulement comme séparateurs? Mais ils devraient être 4 pas 3, non? Peut-être que le premier 1 a une taille différente ... –

Répondre

1

Probablement le Label avec le texte "Please enter the key size of your algorithm" est sur la première colonne du GridLayout, donc toutes les lignes sont affectées par sa taille.

Vous devez diviser les deux sections, par exemple en utilisant différents Composites avec différentes mises en page, une pour le premier Label et une autre pour le contenu avec les boutons.

Par exemple:

container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); 
container.setLayout(new GridLayout(1, false)); 

Composite questionContainer = new Composite(container, SWT.NONE); 
questionContainer.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); 
questionContainer.setLayout(new FillLayout()); 

Label question = new Label(questionContainer, SWT.NONE); 
question.setText("Please enter the key size of your algorithm"); 

Composite contentContainer = new Composite(container, SWT.NONE); 
contentContainer.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); 
contentContainer.setLayout(new GridLayout(4, false)); 

// rest of the content using contentContainer as parent 
+0

Merci pour votre répondre ! Le problème est résolu – Ben193

+1

Au lieu de conteneurs supplémentaires, vous pouvez également utiliser une disposition à 2 colonnes avec une plage de 2 pour l'étiquette. –