2017-10-14 2 views
0

Könnte mir bitte jemand den Grund für die Lücke zwischen den beiden Radiobuttons erklären? Ich habe sogar den horizontalen Abstand auf 0 gesetzt, aber nichts hat sich geändert.Zusätzliche Leerzeichen zwischen zwei Schaltflächen mit 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); 
       } 
} 

Ich würde jede Erklärung oder Lösung zu schätzen wissen. Screenshot of the wizard

+0

Vielleicht ist der "feste Größe" string enthält weiße Stellen nach rechts? Sie könnten versuchen, sie mit 'trim()' zu entfernen. –

+0

Ich glaube nicht. Alle Strings werden aus einer JSON-Datei herausgezogen und haben dieselbe Größe. – Ben193

+0

Warum gibt es 3 'neue Label (Container, SWT.NONE);' an der Spitze? Werden sie nur als Trennzeichen verwendet? Aber sie sollten 4 nicht 3 sein, oder? Vielleicht hat die erste 1 eine andere Größe ... –

Antwort

1

Wahrscheinlich die Label mit dem Text "Please enter the key size of your algorithm" ist auf der ersten Spalte der GridLayout daher alle Zeilen durch seine Größe betroffen sind.

Sie sollten die zwei Abschnitte z. B. mit verschiedenen Composites mit verschiedenen Layouts, eine für die erste Label und eine andere für den Inhalt mit den Tasten teilen.

Zum Beispiel:

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

Vielen Dank für Ihr Antworten ! Das Problem ist gelöst – Ben193

+1

Anstelle von zusätzlichen Containern können Sie auch ein 2-Spalten-Layout mit einer Spaltenspanne von 2 für das Label verwenden. –

Verwandte Themen