文档章节

SWT界面布局介绍之GridLayout

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

© 著作权归作者所有

共有 人打赏支持
山东-小木
粉丝 205
博文 43
码字总数 27191
作品 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、Swing 或 AWT:哪个更适合您?

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

晨曦之光
2012/03/09
0
0
SWT界面布局介绍之AbsoluteLayout

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

山东-小木
2013/01/15
0
2
Java图形用户界面布局控制Layout练习

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

devops1024
06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

咕泡-Factory设计模式笔记

个人感悟: 设计模式都是处理复杂问题的,如果问题本身很简单,使用设计模式反而累赘,增加了开发的复杂性 遇到最简单的情况,直接 new 如果创建对象的过程简单,但是需要匹配不同情况,返回...

职业搬砖20年
17分钟前
0
0
Java中的锁分类

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏...

Funcy1122
25分钟前
0
0
Ansible随机数

想为你的Ansible剧本取一个随机数?还想在接下来的运行中保持系统的等幂性?这里有一个答案。 假如,你要为一大批服务器设置cron任务,却不想让它们同时启动,你可以这样设置分钟数: minute...

大别阿郎
34分钟前
0
0
SpringCloud之服务注册中心Eureka

本系列介绍的配置均基于 Spring Boot 2.0.1.RELEASE 版本和 Spring Cloud Finchley.SR1 服务注册中心 Spring Cloud 已经帮我们实现了服务注册中心,我们只需要很简单的几个步骤就可以完成。 ...

熊小飞呀
今天
9
1
“Comparison method violates ...”异常的再现方法

前提条件:JDK8 代码: import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test { public stat......

hunterli
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部