文档章节

SWT界面布局介绍之GridLayout

山东-小木
 山东-小木
发布于 2013/01/17 00:00
字数 400
阅读 6805
收藏 3

GridLayout网格布局时最常用的布局之一,类似于Html中使用table布局。通过使用GridData来设置布局参数。

做个例子看看。

代码:

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

/**
 * SWT FillLayout布局使用demo 发邮件
 * @author xwalker
 *
 */
public class GridLayoutDemo{
	private Shell shell;
	private Text toAddrText;
	private Text topicText;
	private Text ccText;
	private Text labelText;
	private Button sendBtn;
	private Button timSendBtn;
	private Button saveBtn;
	private Composite composite;
	private Group group;
	
	public void open() {
		Display display = Display.getDefault();
		createContents();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}
	/**
	 * 创建窗口组件
	 */
	protected void createContents(){
		shell=new Shell();
		shell.setText("发邮件");
		shell.setSize(800, 450);
		shell.setLayout(new GridLayout(5, false));
		
		Label toLabel = new Label(shell, SWT.NONE);
		toLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
		toLabel.setText("收件人");
		
		toAddrText = new Text(shell, SWT.BORDER);
		toAddrText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
		
		composite = new Composite(shell, SWT.NONE);
		composite.setLayout(new FillLayout(SWT.HORIZONTAL));
		GridData gd_composite = new GridData(SWT.FILL, SWT.FILL, false, false, 1, 4);
		gd_composite.widthHint = 171;
		composite.setLayoutData(gd_composite);
		
		group = new Group(composite, SWT.NONE);
		group.setText("联系人");
		group.setLayout(new FillLayout(SWT.HORIZONTAL));
		
		List list = new List(group, SWT.BORDER);
		insertData(list);
		Label topiclabel = new Label(shell, SWT.NONE);
		topiclabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
		topiclabel.setText("主题");
		
		topicText = new Text(shell, SWT.BORDER);
		topicText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
		
		Label ccLabel = new Label(shell, SWT.NONE);
		ccLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
		ccLabel.setText("抄送");
		
		ccText = new Text(shell, SWT.BORDER);
		ccText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
		
		Label contentLabel = new Label(shell, SWT.NONE);
		contentLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
		contentLabel.setText("内容");
		
		labelText = new Text(shell, SWT.BORDER);
		GridData gd_labelText = new GridData(SWT.FILL, SWT.FILL, true, false, 3, 1);
		gd_labelText.heightHint = 232;
		labelText.setLayoutData(gd_labelText);
		new Label(shell, SWT.NONE);
		
		sendBtn = new Button(shell, SWT.NONE);
		sendBtn.setText("发送");
		
		timSendBtn = new Button(shell, SWT.NONE);
		timSendBtn.setText("定时发送");
		
		saveBtn = new Button(shell, SWT.NONE);
		saveBtn.setText("存草稿");
		new Label(shell, SWT.NONE);
		
		shell.open();
	}

	private void insertData(List list) {
		for(int i=1;i<=20;i++){
			list.add("联系人"+i);
		}
		
	}
	public static void main(String[] args) {
		GridLayoutDemo demo=new GridLayoutDemo();
		demo.open();
	}
}

© 著作权归作者所有

共有 人打赏支持
山东-小木

山东-小木

粉丝 212
博文 42
码字总数 26536
作品 1
东营
CEO
加载中

评论(1)

老牛吃嫩草
老牛吃嫩草
楼主加油,期待精华
Android学习笔记(二) 布局方式的介绍

Android应用的开发的一项内容就是用户界面开发了。Android提供了大量功能丰富的UI组件。Android的界面是由布局和组件协同完成的。 Android所有UI组件都继承了View类,View类有一个重要的子类...

半夏alvin
2014/03/05
0
0
浅谈android4.0开发之GridLayout布局

作者:李响 本文重点讲述了自android4.0版本后新增的GridLayout网格布局的一些基本内容,并在此基础上实现了一个简单的计算器布局框架。通过本文,您可以了解到一些android UI开发的新特性,并...

晨曦之光
2012/03/14
2.6K
1
SWT界面布局介绍之AbsoluteLayout

AbsoluteLayout是SWT界面设计的默认布局方式,采用坐标绝对定位的方式,定义组件的位置和大小。 默认不设置父控件的Layout或者显示使用setLayout(null)设置父控件的布局为AbsoluteLayout绝对布...

山东-小木
2013/01/15
0
2
SWT、Swing 或 AWT:哪个更适合您?

在为新应用程序选择 GUI 工具包时应该考虑哪些因素? Barry Feigenbaum (feigenba@us.ibm.com), 编程顾问, IBM 本文通过对 Eclipse 的 SWT 和 Java Swing、Abstract Windows Toolkit(AWT)G...

晨曦之光
2012/03/09
0
0
Java图形用户界面布局控制Layout练习

尝试搭建登录对话框,包含两个文字标签(用户名、服务器IP),两个文本输入条(用户名、服务器IP),一个按钮(登录),按照自己认为合适的方式布局。   我把GridLayout(网格布局)、Bor...

devops1024
06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于Excel表格导出方法--application/vnd.ms-excel

关于Excel表格导出方法--application/vnd.ms-excel 由于本人所做的项目中需要用到两种将JSP页面table导出到Excel表格的方法(老板也是坑爹),一种是在后台操作数据库来实现,比较简单。由于...

DemonsI
26分钟前
2
0
springboot配置读写分离

我不提供内容,我只是好文章的搬运工 https://www.cnblogs.com/wuyoucao/p/9610882.html

颖辉小居
30分钟前
2
0
Spring 传参

spring传参之@RequestParam注解 @RequestParam注解有三个参数分别是: value、 required、 defaultValue 代码: @RequestMapping(value="test1", method = RequestMethod.GET) public String......

休辞醉倒
32分钟前
2
0
go http 框架性能大幅下降原因分析

最近在开发一个web 框架,然后业务方使用过程中,跟我们说,压测qps 上不去,我就很纳闷,httprouter + net/http.httpserver , 性能不可能这么差啊,网上的压测结果都是10w qps 以上,几个m...

鼎铭
32分钟前
11
0
GCC编译过程记

GCC编译过程记 一、引言 对于编程工作者来说,GCC是一个熟悉的名字,它的全称是“GNU Compiler Collection”。GCC是一组编译器集合,目前其支持C、C++、Objective-C、Objective-C++、Go和RBI...

珲少
33分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部