簡體   English   中英

swt在formLayout中向右添加小部件

[英]swt add widgets towards right in formLayout

這是我的代碼:

Composite outer = new Composite(parent, SWT.BORDER);
    outer.setBackground(new Color(null, 207, 255, 206)); // Green

    FormLayout formLayout = new FormLayout();
    formLayout.marginHeight = 5;
    formLayout.marginWidth = 5;
    formLayout.spacing = 5;
    outer.setLayout(formLayout);
    //TOP
    Composite Top = new Composite(outer, SWT.BORDER);
    Top.setLayout(new GridLayout());
    Top.setBackground(new Color(null, 232, 223, 255)); // Blue

    FormData fData = new FormData();
    fData.top = new FormAttachment(0);
    fData.left = new FormAttachment(0);
    fData.right = new FormAttachment(100); // Locks on 10% of the view
    fData.bottom = new FormAttachment(20);
    Top.setLayoutData(fData);

    //BOTTOM
    Composite Bottom = new Composite(outer, SWT.BORDER);
    Bottom.setLayout(fillLayout);
    Bottom.setBackground(new Color(null, 255, 235, 223)); // Orange

    fData = new FormData();
    fData.top = new FormAttachment(20);
    fData.left = new FormAttachment(0);
    fData.right = new FormAttachment(100);
    fData.bottom = new FormAttachment(100);
    Bottom.setLayoutData(fData);

我只想在“ TOP”復合布局的右側添加小部件,例如標簽圖像。 由於我不熟悉swt,因此很難將所有標簽對准它的右邊。 我怎么能做到這一點?

如果要在top右側放置另一個寬度,則首先需要建議top不要占用100%的可用空間,例如僅占一半的空間:

FormData formData = new FormData();
formData.right = new FormAttachment( 50 );

或者,您可以不指定formData.right (即null ),以便小部件使用其首選寬度。

一旦有空間容納另一個小部件,您可以像這樣右附:

Composite right = new Composite( outer, SWT.BORDER );
right.setBackground( display.getSystemColor( SWT.COLOR_YELLOW ) );
FormData rightFormData = new FormData();
rightFormData.top = new FormAttachment( top, 0, SWT.TOP );
rightFormData.left = new FormAttachment( top );
rightFormData.bottom = new FormAttachment( top, 0, SWT.BOTTOM );
right.setLayoutData( rightFormData );

結果將如下所示:

在此處輸入圖片說明

要了解有關SWT中的FormLayout和其他布局的更多信息,我建議您閱讀了解SWT中的布局 盡管文章看起來似乎已經過時,但是從那時起SWT中的Layout一直沒有改變,因此文章的內容仍然有效。

一旦您精通FormLayout並尋找一種不太冗長的方式來指定位置,則可以嘗試使用此FormLayout幫助器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM