gridlayout用法 java_SWT:GridLayout 的使用需要注意的事项
SWT当中的GridLayout是一个非常灵活的控件,但是在使用起来需要在控制上下一番功夫.
大家都知道,JAVA在写编写窗口程序的时候,物件的添加,放置 操作起来要比.net费劲的多,但是如果用好了相关org.eclipse.layout.*包当中的相关类,也会写出十分漂亮的界面程序.
下面大家先看一个程序:
源码如下:
package com.layout;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.SWT;
public class CopyOfGridLayoutExc {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Find (GridLayout)");
Label label = new Label(shell, SWT.NONE);
label.setText("Find what:");
Text text = new Text(shell, SWT.BORDER);
Button findButton = new Button(shell, SWT.PUSH);
findButton.setText("Find Next");
Group group = new Group(shell, SWT.NONE);
group.setLayout(new RowLayout());
Button upButton = new Button(group, SWT.RADIO);
upButton.setText("Up");
Button downButton = new Button(group, SWT.RADIO);
downButton.setText("Down");
downButton.setSelection(true);
group.setText("Direction");
Button cancelButton = new Button(shell, SWT.PUSH);
cancelButton.setText("Cancel");
/* Use a GridLayout to position the controls */
Monitor monitor = shell.getMonitor();
int width = monitor.getClientArea().width / 10;
GridLayout layout = new GridLayout(4, false);
layout.marginWidth = layout.marginHeight = 14;//layout leave's the window's space
shell.setLayout(layout);
GridData labelData =
new GridData(SWT.FILL, SWT.CENTER, false, false);
label.setLayoutData(labelData);
GridData textData =
new GridData(SWT.FILL,SWT.CENTER,true,false,2,1);
textData.widthHint = width;
text.setLayoutData(textData);
GridData findData =
new GridData(SWT.FILL, SWT.CENTER, false, false);
findButton.setLayoutData(findData);
GridData groupData =
new GridData(SWT.RIGHT,SWT.TOP,false,false,3,1);
group.setLayoutData(groupData);
GridData cancelData =
new GridData(SWT.FILL, SWT.TOP, false, false);
cancelButton.setLayoutData(cancelData);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
这其中我们在使用的时候应该要注意以下几点:
1.要选择自己适合 的Layout类型.GridLayout适合于多种情况,它大部分情况是使用在较为复杂的界面编程当中,因为复杂的界面会有相当多的控件.
2.GridData的使用将是一个控制界面显示的主要类.通过使用GridData我们可以很好的控制界面.
其中GridData的构造函数比较多,但是相关的使用我们都应该熟悉,特别是上面源程序当中使用的那个构造函数,在使用起来更容易控制GridLayout的布局.通过horizantalSpan,VerticalSpan来控制控件所占用的单元格,这样就会控制其它控制是否在一列当中显示还是在几列当中显示.前提是通过GridLayout.numColumns来设置列数.
3.如果不设置GridData那么相关的控件都会按照相关的建立顺序加入到GridLayout当中.GridData不能控制控件的显示顺序,而相关顺序是对象的建立顺序来控制的.这一点不要与GridData混淆了.
希望写这篇文章对大家学习SWT有用.
posted on 2006-09-12 10:50 水煮三国 阅读(2373) 评论(1) 编辑 收藏 所属分类: J2SE
gridlayout用法 java_SWT:GridLayout 的使用需要注意的事项相关推荐
- gridlayout用法 java_BorderLayout、FlowLayout和GridLayout使用方法
BorderLayout BorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为五个区域,分别是页头(PAGE_START).页尾(PAGE_END).行首(LINE_ST ...
- gridlayout用法 java_Java从入门到精通14-GridLayout网格布局
网格布局特点: 使容器中的各组件呈M行×N列的网格状分布. 网格每列宽度相同,等于容器的宽度除以网格的列数. 网格每行高度相同,等于容器的高度除以网格的行数. 各组件的排列方式为:从上到下,从左到右. ...
- gridlayout用法 java_java – 使用gridlayout添加按钮
我正在尝试制作一个由9×9 JButton制作的简单的tic tac toe board. 我使用了二维数组和一个gridlayout,但结果是什么,没有任何按钮的框架. 我做错了什么? import ...
- Android 应用开发(50)---GridLayout(网格布局)
GridLayout(网格布局) 今天要介绍的布局是Android 4.0以后引入的一个新的布局,和前面所学的TableLayout(表格布局) 有点类似,不过他有很多前者没有的东西,也更加好用, 可 ...
- Android 应用开发(39)---GridLayout(网格布局)
GridLayout(网格布局) 可以自己设置布局中组件的排列方式 可以自定义网格布局有多少行,多少列 可以直接设置组件位于某行某列 可以设置组件横跨几行或者几列 另外,除了上述内容外,本节还会给大家 ...
- GridLayout(网格布局)
前言: 作为android 4.0 后新增的一个布局,与前面介绍过的TableLayout(表格布局)其实有点大同小异; 不过新增了一些东东 ①跟LinearLayout(线性布局)一样,他可以设置容 ...
- android布局layout,Android布局(FrameLayout、GridLayout)
1.帧布局(FrameLayout) 帧布局中的每一个组件都代表一个画面,默认以屏幕左上角作为(0,0)坐标,按组件定义的先后顺序依次逐屏显示,后面出现的会覆盖前面的画面.用该布局可以实现动画效果.继 ...
- Android——GridLayout
转载自http://www.cnblogs.com/over140/archive/2011/12/08/2280224.html 欢迎大家转载 前言 本章内容android.widget.GridL ...
- 安卓布局,GridLayout
布局代码: <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android= ...
最新文章
- Ubuntu下安装kate编辑器
- 网络通信-1(InetAddress、UDP、TCP、DatagramPacket、DatagramSocket、UDP通信示例)
- 接受map_[译] 图解 Map、Reduce 和 Filter 数组方法
- 基于C#.NET的高端智能化网络爬虫
- Effective C++学习第九天
- 前端复习之JavaScript基础
- 华为Mate 30 Pro全新配色曝光:“赤茶橘”颜值超高
- 【kafka】kafka kerberos Cannot locate KDC Unable to locate KDC for realm
- python 类函数 实例函数_python_30期【实例函数 类里面的函数】
- 电脑小白和黑客的对白
- 申请亚马逊AWS一年免费服务器
- 你不知道的网站图片存储格式-base64
- linux 囊括所有安装
- 微信扫码下载app的前端界面代码
- CAD Voronoi 生成插件 V2
- Anaconda安装指南
- 最大后验概率(MAP)- maximum a posteriori
- Unity 3d 最新下载与安装
- 英雄互娱A股上市路:被收购、独立IPO、借壳均被按下暂停键
- Redo Byte Address(RBA)
热门文章
- catlogin.java_[安全|管理]CatSeedLogin —— 种子猫登录插件[1.12.2-1.16]
- 《我要自学网》——DW CS5 摘要
- c语言差分qpsk编码信道估计 pudn,请教一下OFDM中的信道估计
- phpexcel手册
- phpexcel 设置批注_phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护...
- Javascript: unterminated string literal 解决方法
- 网络编程【2】自定义消息格式实现装包与拆包
- MOOC 北京大学 《人工智能实践》 课程笔记(文末有全部代码)
- 计算机显示器画画的清晰度,分辨率越高显示画质越好吗?_液晶显示器_液晶显示器新闻-中关村在线...
- oracle streams 11g数据复制,在Oracle 11g Streams单向传输的基础上配置Streams双向传输测试...