[英]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.