- 浏览: 134178 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
xiaojiit:
<div class="quote_title ...
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 4711、效果如下: 输入1——5,返回1,2,3, ... -
Java单线程池
2015-07-22 10:04 608package com.hebei.read.core.pl ... -
自定义Java多线程池
2015-07-22 10:04 557package com.anda.threads; i ... -
自定义Java线程池
2015-07-22 10:02 0package com.anda.threads; i ... -
Linux下将Tomcat设置为Chkconfig启动方式
2013-12-14 16:19 736#!/bin/sh # # tomcat: Start ... -
java文件下载文件名乱码(转)
2013-11-19 11:25 745response.setHeader(...)下载 ... -
Tomcat、Apache、Mod_JK整合
2012-01-16 19:17 1554Apache、Tomcat、mod_jk 域名解析 1、安装 ... -
Java HashMap的两种排序方式
2011-12-09 18:31 945Map<String, Integer> ... -
使网页变灰,支持IE、FireFox、Opera、360浏览器等
2011-12-06 10:44 28951、对IE的支持,只需要在CSS中添加如下代码: ... -
Java 获取指定时间
2011-12-05 17:29 2154// 用来全局控制 上一周,本周,下一周的周数变化 ... -
Java 获取系统信息,包括CPU使用率、硬盘大小、网卡状态、系统信息等
2011-10-28 15:05 8857采用singar.jar实现,需要将sigar-x86-win ... -
CentOS Linux 下Tomcat启动脚本
2011-09-24 10:09 1589#!/bin/bash # # Init file ... -
IE6下DIV高度的问题
2011-06-30 09:14 878在IE6下,使用 height:10px;时,比实际的高度要高 ... -
非常不错的JS插件
2010-04-22 10:26 695从网上发现一个JS日期插件,经过自己修改,非常好用了,在此标识 ... -
基于xfire的web service搭建
2009-03-27 12:39 1668这里,用的xfire1.2.6和Spring 2.0,开发工具 ... -
Linux系统下JSP服务器配置步骤详解
2008-03-07 10:27 999接触JSP服务器 的人基本上都是从JSP的安装开始的 ... -
Java专业术语标准化规范
2008-03-08 09:32 902-A- AJAX: (建议不译,原因:专有名词) ... -
Eclipse开发经典教程:SWT布局(2)
2008-03-08 09:54 2609GridLayout布局 GridLayout ... -
JSP 文件上传
2008-08-18 17:22 1115这些天做JSP 的网站,遇到一个上传文件的问题,经过查找,终 ... -
利用 commons-fileupload 组件进行文件上传
2008-09-19 14:48 905<wbr> </wbr><wb ...
相关推荐
Eclipse开发经典教程,SWT中采用了布局方式,用户可使用布局来控制组件中元素的位置和大小等信息。
### Eclipse开发经典教程:深入解析SWT组件 #### Control类:窗口组件的基石 在探讨SWT(Standard Widget Toolkit)组件之前,理解`Control`类的重要性不容忽视。`Control`作为一个抽象类,充当了所有窗口组件的...
通过学习这个经典教程,开发者不仅能熟练使用Eclipse,还能掌握SWT布局的基本原理和技巧,从而提升开发效率,创建出高效、美观的Java应用程序。无论是编写插件、创建自定义界面还是进行代码重构,这些知识都将...
1. **SWT组件**:SWT提供了各种基本的GUI组件,如按钮(Button)、文本框(Text)、列表(List)、树(Tree)、表格(Table)等。了解这些组件的用法是创建用户界面的基础。 2. **布局管理**:在SWT中,布局...
### Java图形界面开发:SWT全接触 #### SWT简介 **SWT**(Standard Widget Toolkit)是由Eclipse基金会开发的一套用于构建Java图形用户界面(GUI)的应用程序接口(API)。与传统的Java图形界面开发工具包如AWT...
【SWT布局详解:Eclipse开发插件使用】 在Java平台上,SWT(Standard Widget Toolkit)是一种用于构建图形用户界面(GUI)的库,它是Eclipse IDE中的核心组成部分。SWT提供了一系列的基础控件和布局管理器,使得...
1. **SWT组件**:SWT提供了一系列的基本组件,如按钮(Button)、文本框(Text)、列表(List)、表格(Table)、树形视图(Tree)等,开发者可以使用这些组件来构建复杂的用户界面。每个组件都有丰富的API供开发者...
RCP(Rich Client Platform)和SWT(Standard Widget Toolkit)是Eclipse插件开发中的核心概念。 RCP是Eclipse提供的一种用于构建复杂桌面应用程序的框架。它基于OOP(面向对象编程)原则,提供了可扩展性、模块化...
5. **布局管理**:SWT提供了多种布局管理器,如`GridLayout`、`FillLayout`、`RowLayout`等,它们用于决定控件在Shell中的排列方式。通过`setLayout`方法设置Shell或控件的布局。 6. **运行和调试**:在Eclipse中,...
- **轻量级封装**:SWT对Java GUI库进行了轻量级封装,使其更加贴近本地操作系统的外观和感觉。 - **性能优化**:利用JNI技术,SWT能够更好地处理GUI应用程序中的性能问题。 - **跨平台支持**:虽然SWT具有本地化的...
4. SWT布局管理: SWT提供了多种布局管理器,如FillLayout、GridLayout、FormLayout等,它们决定了组件在容器中的排列方式。通过合理地使用布局管理器,开发者可以创建出适应不同屏幕尺寸和分辨率的界面。 5. SWT...
- **与 Qt、GTK+ 比较**:SWT 提供了Java接口,而Qt和GTK+则需要使用C++或C进行编程,对于Java开发者来说,SWT更易用。 8. **实战演练**: 通过阅读本教程,读者将有机会实践创建简单的SWT应用程序,例如“Hello,...
【描述】中的"org.eclipse.swt"是指Eclipse Standard/Widgets工具包,这是一个开源的Java库,允许开发人员在多种平台上创建原生用户界面。它特别强调了JAVA调用IE内核来实现一个内置的浏览器功能,这使得开发者能够...
Eclipse插件开发教程PPT是针对开发者设计的一份详细教学材料,旨在帮助他们了解并掌握如何利用Eclipse平台进行插件开发,从而定制自己的开发环境。以下是基于这个教程的几个关键知识点: 1. **Eclipse插件体系结构*...
1. **高性能**:SWT直接操作操作系统提供的API,避免了Java AWT和Swing中的抽象层,从而实现了更高的运行效率。 2. **原生外观**:由于SWT直接与操作系统接口,因此生成的界面具有与操作系统一致的风格,用户界面...
1. **窗口和布局**:SWT提供各种窗口组件,如Shell、Composite、Group等,以及布局管理器,如FillLayout、GridLayout、MigLayout等,用于组织和控制控件的排列方式。 2. **基本控件**:包括按钮(Button)、文本框...
2. **SWT详解**:SWT是Java平台上的一个GUI库,它是Java AWT和Swing的替代品,提供了更接近于原生操作系统界面的用户体验。SWT通过直接操作操作系统API来创建窗口、按钮、文本框等控件,因此其性能优于纯Java实现的...
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....
1. **原生外观**:SWT与操作系统紧密集成,使得Java GUI应用程序看起来和行为都与平台上的其他应用程序相似,提供了原生的外观和感觉。 2. **高性能**:由于SWT直接操作系统的图形API,因此它的性能通常优于使用...