Java程序设计之swt教程

package edu.ch4;

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; public class Sample4_12 { }

public static void main(String[] args) { }

Display display=new Display();//创建一个display对象。 final Shell shell=new Shell(display);//shell是程序的主窗体 shell.setText(\示例\);

RowLayout rowlayout=new RowLayout(); //创建按行放置组件的对象 rowlayout.pack=false; //强制组件大小相同 rowlayout.wrap=false; //不自动折行

rowlayout.marginWidth=20; //组件距容器边缘的宽度为20像素 rowlayout.marginHeight=20; //组件距容器边缘的高度为20像素 rowlayout.spacing=10; //组件之间的间距为10像素

shell.setLayout(rowlayout); //设置容器shell的布局方式为rowlayout Button bt1=new Button(shell,SWT.PUSH); //创建按钮 bt1.setText(\按钮1\);

RowData rowdata=new RowData(80,30); //创建布局数据类的对象 bt1.setLayoutData(rowdata); //设置按钮的布局数据 new Button(shell,SWT.PUSH).setText(\按钮2\); new Button(shell,SWT.PUSH).setText(\按钮3\); new Button(shell,SWT.PUSH).setText(\按钮4\); shell.pack(); //自动调整容器shell的大小 shell.open(); //打开主窗体

while(!shell.isDisposed()){ //如果主窗体没有关闭则一直循环 }

display.dispose(); //销毁display

if(!display.readAndDispatch()){ //如果display不忙 display.sleep(); //休眠 }

当rowlayout.pack=true时,各按钮为设定值,如图4.17所示;当rowlayout.pack=false时,各按钮被强制设定为相同大小,如图4.18所示;当rowlayout.justify=true时,将主窗体拉伸,各按钮间的距离也增大,但间隔均匀分布,如图4.19所示;当rowlayout.justify=false时,将主窗体拉伸,各按钮间距不变,如图4.20所示;当rowlayout.wrap=false时,当主窗体宽度收缩,按钮自动折行,如图4.21所示;当rowlayout.wrap=false时,主窗体宽度收缩,按钮不会折行,如图4.22所示。

图4.17 rowlayout.pack=true 图4.18 rowlayout.pack=false

图4.19 rowlayout.justify=true 图4.20 rowlayout.justify=false

图4.21 row

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4