Eclipse SWT 布局总结
2023-12-15 04:48:32
Java doc
- https://help.eclipse.org/latest/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/layout/package-summary.html
SWT 布局类型
- 绝对布局 absolute
- 表单布局 FormLayout (相对布局)
- 填充布局 FillLayout(水平填充、垂直填充)
- 网格布局 GridLayout(列数、列宽度是否相同)
- 行布局 RowLayout(水平行、垂直行)
- 栈布局 StackLayout (后进先显示)
通过Composite.setLayout()方法设置布局
org.eclipse.swt.widgets.Composite#setLayout(null)
绝对布局 absolute
设置绝对布局
setLayout(null)
设置组件位置、大小
通过Control.setBounds
方法设置组件位置、大小
org.eclipse.swt.widgets.Control#setBounds (int x, int y, int width, int height)
x:水平距离
y:垂直距离
(0,0)是窗体的左上角。
案例:
btnNewButton.setBounds(0, 0, 50, 50);//按钮显示在窗体的左上角宽、度高多都为50
表单布局 FormLayout
设置表单布局
setLayout(new FormLayout());
设置组件布局数据
- 通过
org.eclipse.swt.widgets.Control#setLayoutData
设置布局数据 - 通过
org.eclipse.swt.layout.FormData
创建布局数据
Button btnNewButton = new Button(this, SWT.NONE);
FormData fd_btnNewButton = new FormData();
fd_btnNewButton.top = new FormAttachment(0, 10);
fd_btnNewButton.left = new FormAttachment(0, 10);
btnNewButton.setLayoutData(fd_btnNewButton);
btnNewButton.setText("New Button");
Button btnNewButton_1 = new Button(this, SWT.NONE);
FormData fd_btnNewButton_1 = new FormData();
fd_btnNewButton_1.top = new FormAttachment(btnNewButton, 0, SWT.TOP);//相对btnNewButton
fd_btnNewButton_1.left = new FormAttachment(btnNewButton, 6);
btnNewButton_1.setLayoutData(fd_btnNewButton_1);
btnNewButton_1.setText("New Button");
填充布局 FillLayout
设置填充布局
setLayout(new FillLayout(SWT.HORIZONTAL));//水平填充
setLayout(new FillLayout(SWT.VERTICAL));//垂直填充
- 组件后会按水平或垂直填充整个窗体。
- 调整窗体大小组件随之改变大小填充。
网格布局 GridLayout
设置网格布局
setLayout(new GridLayout(2, false));
构造方法
public GridLayout (int numColumns, boolean makeColumnsEqualWidth)
- 创建网格布局是需要指定列数、列是否等宽
设置组件布局数据
- 通过
org.eclipse.swt.widgets.Control#setLayoutData
设置组件布局数据。 - 通过
org.eclipse.swt.layout.GridData
设置网格数据。可以设置水平、垂直对齐类型(左对齐、居中对齐、右对齐、填充对齐),水平、垂直跨越单元格个数。
GridData 构造方法
public GridData (int horizontalAlignment, int verticalAlignment, boolean grabExcessHorizontalSpace, boolean grabExcessVerticalSpace, int horizontalSpan, int verticalSpan)
- horizontalAlignment 水平对齐方式
- verticalAlignment 垂直对齐方式
- grabExcessHorizontalSpace 单元格是否足够宽以适应剩余的水平空间,是否预留足够宽度,可以设置为false使对齐。
- grabExcessVerticalSpace 单元格是否足够高以适应剩余的垂直空间,是否预留足够宽度,可以设置为false使对齐。
- horizontalSpan 水平跨度(单元格合并的意思)
- verticalSpan 垂直跨度(单元格合并的意思)
行布局 RowLayout
设置行布局
setLayout(new RowLayout(SWT.VERTICAL));//水平行
setLayout(new RowLayout(SWT.HORIZONTAL));//垂直行
添加组件后会水平或垂直排列。
栈布局 StackLayout
设置栈布局
setLayout(new StackLayout());
添加组件按后进或先进先 填充整个窗体。
组合布局
可以通过org.eclipse.swt.widgets.Composite
进行组合布局。
文章来源:https://blog.csdn.net/jastzhang/article/details/122266744
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!