SWT的布局管理小结

SWT的布局管理

FillLayout
组件填满整个容器,当容器大小变化时,组件同时跟随变化。如果同时添加多个组件,则每个组件将平均分配容器空间。默认情况下filllayout会水平添加多个组件。可以通过设置来达到垂直加入。
s.setLayout(new FillLayout(SWT.VERTICAL));

RowLayout
组件会按行排列,当容器大小不够排列时,组件会自动排到第二排。如果不希望容器自动排列,可以通过设置wrap:rl.wrap = false;
如果想要让一排中所有组件都同宽,可以通过设置pack:rl.pack = false;
设置纵向排列RowLayout rl = new RowLayout(SWT.VERTICAL);

GridLayout
可以设置参数决定组件加入容器时占多少行、列单元格,如何填充.
设置列数:
GridLayout gl = new GridLayout( );
        gl.numColumns=3;
        s.setLayout(gl);
控制组件的尺寸和对齐方式:
对齐方式:
GridData gd = new GridData( );
gd.horizontalAlignment = GridData.CENTER;//GridData.BEGINNING,GridData.END
l1.setLayoutData(gd);
组件填充方向:
gd = new GridData(GridData.FILL_HORIZONTAL); //FILL_VERTICAL,FILL_BOTH
t1.setLayoutData(gd);

FormLayout
用来布局表单,也是最复杂的布局管理,在FormLayout中FormData和FormAttachment的设置是必需的。
    FormData fd = new FormData( );
        fd.top = new FormAttachment(10, 10);
        fd.left = new FormAttachment(0, 10);
        fd.bottom = new FormAttachment(30,0);
        fd.right = new FormAttachment(40,0);
        l1.setLayoutData(fd);
上面这几行代码首先设置了组件的上下左右边缘的距离 – 上端位于整个容器的10%处,

Comments are closed.