2017-08-21 1 views
0

Je veux que la hauteur de grpModelProperties soit inférieure. Que dois-je faire pour que les distances au-dessus et au-dessous de la zone de texte dans le groupe soient les mêmes?SWT: hauteur du groupe

public void createControl(Composite parent) { 

    Composite composite = new Composite(parent, SWT.NULL); 
    composite.setLayout(new FillLayout()); 

    Group grpModelProperties = new Group(composite, SWT.SHADOW_IN); 
    grpModelProperties.setText("ETL Transformation Model"); 
    grpModelProperties.setLayout(new GridLayout(2, false)); 


    GridData data = new GridData(GridData.FILL_HORIZONTAL); 
    text = new Text(grpModelProperties, SWT.NONE); 
    text.setLayoutData(data); 

    Button button = new Button(grpModelProperties, SWT.PUSH); 
    button.setText("File System..."); 
    button.addSelectionListener(new SelectionAdapter() { 
    public void widgetSelected(SelectionEvent e) { 
    FileDialog dialog = new FileDialog(getShell(), SWT.NULL); 
    String path = dialog.open(); 

    if (path != null) { 
    File file = new File(path); 
    if (file.isFile()) 
     displayFiles(new String[] { file.toString()}); 
     else 
     displayFiles(file.list()); 

    } 
} 

Répondre

3

Vous avez spécifié FillLayout pour le Composite contenant le Group de sorte que le groupe est étirée pour remplir la zone de dialogue.

Utilisez une autre disposition pour le composite:

Composite composite = new Composite(parent, SWT.NULL); 
composite.setLayout(new GridLayout()); 

Group grpModelProperties = new Group(composite, SWT.SHADOW_IN); 
grpModelProperties.setText("ETL Transformation Model"); 
grpModelProperties.setLayout(new GridLayout(2, false)); 

// Layout data for the group in the composite, 
// Fill the row, stays at the top of the dialog 
grpModelProperties.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); 

Ici, je l'ai utilisé GridLayout et régler le GridData pour le groupe juste remplir la ligne.