文档章节

SWT界面布局介绍之GridLayout

山东-小木
 山东-小木
发布于 2013/01/17 00:00
字数 400
阅读 6838
收藏 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();
	}
}

© 著作权归作者所有

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

山东-小木

粉丝 228
博文 48
码字总数 29892
作品 1
东营
CEO
私信 提问
加载中

评论(1)

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

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

半夏alvin
2014/03/05
0
0
学以致用——Java源码——使用Swing创建用户界面原型之三(Create GUI based on UI design)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpdlzu80100/article/details/86293696 程序功能: 使用Swing控件创建以下用户界面。 设计思路: 1. 观察界面...

预见未来to50
01/11
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
Java图形用户界面布局控制Layout练习

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

devops1024
2018/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Navicat怎样导入Excel表格和txt文本的数据

Navicat怎样导入Excel表格和txt文本的数据 2018年07月02日 11:29:11 零碎de記憶 阅读数:2433 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39135287/ar...

linjin200
7分钟前
0
0
使用MaxCompute Java SDK运行安全相关命令

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute 安全指南 ,并给出了安全相关语句汇总 。 简而言之, 权限管理 、 列级别访问控制 、 ...

阿里云云栖社区
12分钟前
0
0
中小公司的Java工程师应该如何逆袭冲进BAT?

(1)80% Java工程师都有的迷茫 这篇文章,跟大家聊一聊很多很多很多人问我的一个问题:中小公司的Java工程师应该如何规划准备,才能跳槽进入BAT这类一线互联网公司? 之所以我用了三个 “很...

Java填坑路
13分钟前
1
0
你的应用够安全吗?绿标2.0隐私权限详解

近日,最新一期的《绿色应用达标率调查报告》结果显示,应用在安全方面的通过率仅为57%,相较于其他四项标准通过率最低。其中隐私权限的过度获取是主要原因之一,需要开发者尽快完成整改。 ...

安卓绿色联盟
23分钟前
0
0
使用MaxCompute Java SDK运行安全相关命令

使用MaxCompute Console的同学,可能都使用过MaxCompute安全相关的命令。官方文档上有详细的MaxCompute安全指南,并给出了安全相关语句汇总。 简而言之,权限管理、列级别访问控制、项目空间...

阿里云官方博客
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部