- 浏览: 129165 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
xiaojiit:
99九夜茴 写道请问能不能把服务器端是Java的Web传我一下 ...
C# 编程WinForm 上传文件到 Asp.Net 的 Web项目 -
99九夜茴:
请问能不能把服务器端是Java的Web传我一下啊?我把代码复制 ...
C# 编程WinForm 上传文件到 Asp.Net 的 Web项目 -
xiaojiit:
不好意思,忘记传了。
Web通用简体繁体转化Js -
wwwcomy:
Language.js他人呢
Web通用简体繁体转化Js -
xiaojiit:
luogen33 写道 这美眉 很强悍啊!!哈哈,过奖过 ...
Java 获取系统信息,包括CPU使用率、硬盘大小、网卡状态、系统信息等
在Java 中,GUI程序开发的目标之一是跨平台,而每种类型操作系统对屏幕的定义不一样,所以Swing中引入了布局的概念,对子组件的位置和大小等信息进行定义。SWT中也采用了布局方式,用户可使用布局来控制组件中元素的位置和大小等信息。
另外,如果组件没有设置布局信息,也可以通过坐标进行相对定位。在介绍Control类的时候,其中有一个方法“setBounds (int x, int y, int width, int height)”可以指定组件相对于父组件的位置和组件的大小。在这种方式下,父组件大小和其他信息的改变不会对当前组件有影响。复合组件常常包含多个控 件,可以使用以下两种方法安排这些控件。
(1)绝对定位:为每个控件设置明确的 X 和 Y 位置(setBounds),并通过代码设置一定的宽度和高度。
(2)托管定位:每个控件的X、Y、宽度和高度都是通过 LayoutManager 设置的。
在多数情况下,应该选择使用 LayoutManagers,因为可以很容易地调整它们来适应可变大小的 GUI。SWT 提供了一些常用的布局管理器供用户使用;在布局管理器中,每当重新设置复合组件的大小时,都需要进行定位。
布局管理器常常是专为某一个复合组件设计的。一些布局管理器只使用它们自身的参数就可以控制,而另一些布局管理器还需要其他参数(LayoutData),该参数是在设置布局管理器的复合组件中的每个控件上指定的。SWT中常用的布局管理器有如下一些。
●FillLayout:子组件将以相同的大小填充到父组件中。
● RowLayout:子组件将在父组件上一行或几行显示(设置相应的属性值,子组件会自动换行)。
●GridLayout:网格式布局,子组件可以指定占用父组件中几个格,以及组件填充哪几个网格。
● FormLayout:可以通过FormAttachment以父组件或子组件的边作为相对位置,进行精确布局。
为组件添加布局信息的步骤如下。
1. 创建布局(Layout)类。
2. 通过窗口组件的setLayout方法设置相应的布局类。
3. 设置子组件的布局信息。
当窗口组件设置了布局信息后,窗口组件显示的时候将会调用相应的布局类对窗口组件的子组件进行布局、定位和计算子组件大小的操作,从而使窗口组件以更好的方式显示在父组件中。下面将介绍Eclipse中提供的几种常用的布局方式。
FillLayout布局
FillLayout是非常简单的一种布局方式,它会以同样大小对父组件中的子组件进行布局,这些子组件将以一行或一列的形式排列。
一般来说,用户可以在任务栏、工具栏中放置FillLayout布局,通过FillLayout布局对子组件进行定位,也可以当子组件只有一个组件时,通过FillLayout布局填充整个父组件的空间。
FillLayout的风格
FillLayout布局中,可以把子组件按水平或垂直的方式进行排列,这些风格是当创建FillLayout实类时以参数形式指定的,如表1所示。
FillLayout布局实例
FillLayout是简单而且很常用的布局,下面通过实例展示FillLayout的布局效果,代码如例程1所示。
例程1 FillLayoutSample.java
** * 为了节省篇幅,所有的import类已经被注释 * 读者可以通过ctrl+shift+o快捷键,自动引入所依赖的类 * 如果有问题可发邮件到ganshm@gmail.com * */ public class FillLayoutSample { Display display = new Display(); Shell shell = new Shell(display); public FillLayoutSample() { //新建FillLayout布局,设置子组件与水平方式排列 FillLayout fillLayout = new FillLayout(SWT.HORIZONTAL); //指定子组件的上、下边距为多少像素 fillLayout.marginHeight = 25; //指定子组件的左、右边距为多少像素 fillLayout.marginWidth = 25; //指定子组件之间距离为多少像素 fillLayout.spacing = 10; //设定父组件的布局方式 shell.setLayout(fillLayout); Button button1 = new Button(shell, SWT.PUSH); button1.setText("button1"); Button button2 = new Button(shell, SWT.PUSH); button2.setText("button number 2"); Button button3 = new Button(shell, SWT.PUSH); button3.setText("3"); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } public static void main(String[] args) { new FillLayoutSample(); } } |
程序中通过marginHeight、marginWidth和spacing指定了边距和子组件的间距,程序运行效果如图1所示。
图1 FillLayout布局实例
RowLayout布局
相对于FillLayout来说,RowLayout比较灵活,功能也比较强。用户可以设置布局中子元素的大小、边距、换行及间距等属性。
RowLayout的风格
RowLayout中可以相关的属性设定布局的风格,用户可以通过“RowLayout.属性”的方式设置RowLayout的布局风格,RowLayout中常用的属性如下。
●Wrap:表示子组件是否可以换行(true为可换行)。
●Pack:表示子组件是否为保持原有大小(true为保持原有大小)。
●Justify:表示子组件是否根据父组件信息做调整。
●MarginLeft:表示当前组件距离父组件左边距的像素点个数。
●MarginTop:表示当前组件距离父组件上边距的像素点个数。
●MarginRight:表示当前组件距离父组件右边距的像素点个数。
●MarginBottom:表示当前组件距离父组件下边距的像素点个数。
●Spacing:表示子组件之间的间距像素点个数。
另外,RowLayout可以通过RowData设置每个子组件的大小,例如“button.setLayoutData (new RowData(60, 60))”将设置buton的大小为(60,60),RowLayout风格如表2所示。
RowLayout布局实例
RowLayout是很常用的布局,而且不太复杂,下面通过实例展示RowLayout的布局效果,代码如例程2所示。
例程2 RowLayoutExample.java
public class RowLayoutExample { Display display; Shell shell; RowLayoutExample() { display = new Display(); shell = new Shell(display); shell.setSize(250, 150); shell.setText("A RowLayout Example"); //新建RowLayout布局 RowLayout rowLayout = new RowLayout(); //子组件保持原有大小 rowLayout.pack = true; //子组件可换行 rowLayout.wrap = true; //根据父组件信息调整位置 rowLayout.justify = true; //左边距为30像素 rowLayout.marginLeft = 30; //上边距为30像素 rowLayout.marginTop = 30; //设定父组件RowLayout布局 shell.setLayout(rowLayout); final Text t = new Text(shell, SWT.SINGLE | SWT.BORDER); final Button b = new Button(shell, SWT.BORDER); final Button b1 = new Button(shell, SWT.BORDER); //设置子组件大小 b1.setLayoutData(new RowData(60, 60)); b.setText("OK"); b1.setText("Cancel"); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } public static void main(String[] argv) { new RowLayoutExample(); } } |
程序中指定了边距和子组件的间距,以及子组件大小的信息,程序运行效果如图2所示。
图2 RowLayout布局实例
发表评论
-
【小程序】java生成integer的字符串序列
2016-08-06 11:33 4141、效果如下: 输入1——5,返回1,2,3, ... -
Java单线程池
2015-07-22 10:04 561package com.hebei.read.core.pl ... -
自定义Java多线程池
2015-07-22 10:04 517package com.anda.threads; i ... -
自定义Java线程池
2015-07-22 10:02 0package com.anda.threads; i ... -
Linux下将Tomcat设置为Chkconfig启动方式
2013-12-14 16:19 690#!/bin/sh # # tomcat: Start ... -
java文件下载文件名乱码(转)
2013-11-19 11:25 676response.setHeader(...)下载 ... -
Tomcat、Apache、Mod_JK整合
2012-01-16 19:17 1508Apache、Tomcat、mod_jk 域名解析 1、安装 ... -
Java HashMap的两种排序方式
2011-12-09 18:31 911Map<String, Integer> ... -
使网页变灰,支持IE、FireFox、Opera、360浏览器等
2011-12-06 10:44 28371、对IE的支持,只需要在CSS中添加如下代码: ... -
Java 获取指定时间
2011-12-05 17:29 2074// 用来全局控制 上一周,本周,下一周的周数变化 ... -
Java 获取系统信息,包括CPU使用率、硬盘大小、网卡状态、系统信息等
2011-10-28 15:05 8735采用singar.jar实现,需要将sigar-x86-win ... -
CentOS Linux 下Tomcat启动脚本
2011-09-24 10:09 1544#!/bin/bash # # Init file ... -
IE6下DIV高度的问题
2011-06-30 09:14 811在IE6下,使用 height:10px;时,比实际的高度要高 ... -
非常不错的JS插件
2010-04-22 10:26 631从网上发现一个JS日期插件,经过自己修改,非常好用了,在此标识 ... -
基于xfire的web service搭建
2009-03-27 12:39 1596这里,用的xfire1.2.6和Spring 2.0,开发工具 ... -
Linux系统下JSP服务器配置步骤详解
2008-03-07 10:27 951接触JSP服务器 的人基本上都是从JSP的安装开始的 ... -
Java专业术语标准化规范
2008-03-08 09:32 819-A- AJAX: (建议不译,原因:专有名词) ... -
Eclipse开发经典教程:SWT布局(2)
2008-03-08 09:54 2489GridLayout布局 GridLayout ... -
JSP 文件上传
2008-08-18 17:22 1075这些天做JSP 的网站,遇到一个上传文件的问题,经过查找,终 ... -
利用 commons-fileupload 组件进行文件上传
2008-09-19 14:48 859<wbr> </wbr><wb ...
相关推荐
Eclipse开发经典教程,SWT中采用了布局方式,用户可使用布局来控制组件中元素的位置和大小等信息。
Eclipse开发经典教程:常用SWT组件.pdf
Eclipse开发经典教程:常用快捷键 ,本节将从笔者的亲身经验总结出一些快捷键,并对快捷键进行分类,而且按笔者的喜好进行排列,并加上相关的解释,希望读者能用心去体会。
SWT编程开发学习资料和一些实例代码,Eclipse开发经典教程:SWT开发
包含9个部分,另附<Eclipse核心编程——插件、界面与Web开发 (节选)> 9个部分分别是:SWT布局,常用SWT组件,SWT事件,TreeViewer组件,展现组件,常用快捷键,插件安装,单元测试,代码重构
eclipse插件开发: rcp/swt相关资料 rcp swt 插件开发
重要讲解eclipse的开发插件SWT的开发布局,swt是在java平台下一种界面开发插件
java eclipse swt word教程
Eclipse开发经典教程-TreeViewer组件
Eclipse SWT Designer安装教程
Eclipse插件开发教程PPT Eclipse插件开发教程PPT
swt是一些用于javaGUI即图形界面设计用的插件,但是当执行打包好的exe文件时,容易出现找不到jar包的错误,这里提供下载资源
org.eclipse.swt.browser.HelperAppLauncherDialog_1_9.class org.eclipse.swt.browser.IE.class org.eclipse.swt.browser.InputStream.class org.eclipse.swt.browser.LocationAdapter.class org.eclipse.swt....
Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT
swtjface api.chm org.eclipse.swt是学习swt/jface帮助文档1
教程名称: 【动力节点】Java经典教程_Eclipse开发必备快捷键视频教程本套Java视频教程主要介绍了Eclipse如何从官网下载,及详细地安装与配置过程;并讲解了在Eclipse下如何创建Java工程及JavaWeb工程;并通过Java...
Eclipse插件开发教程 Eclipse插件开发
Eclipse+SWTJFace开发实战精解,SWT例子,Eclipse开发入门与项目实践+源代码
eclipse插件开发笔记第三章:SWT编程基础 eclipse插件开发笔记第三章:SWT编程基础 eclipse插件开发笔记第三章:SWT编程基础