栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Eclipse SWT 布局总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Eclipse SWT 布局总结

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://github.com/jast90/java-tutorial/tree/master/swt/hello-swt/src/main/java/io/gitub/jast90/swt/basic/layout

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691879.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号