- 浏览: 200448 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
ouyangshixiong:
...
秒杀Eclipse查看Jar包源码乱码问题 -
cs6641468:
WatchKey都没有reset,第二次loop妥妥的捕获不到 ...
Java7 使用WatchService监听文件变化 -
ck_2036:
...
秒杀Eclipse查看Jar包源码乱码问题 -
asialee:
复杂对象就需要使用framedecorator了
Netty对象传输
自己写的一个SWT/JFace的工具类,有了它,构建Label,Button,Composite,Group等等的基础组件,就变得很容易了。
/** * 布局均为GridLayout,GridData * * @author TigerChen * */ public class UIFactory { /** * 防止Text被撑大,而给它设置的一个默认的widthHint */ public static final int SIZING_TEXT_FIELD_WIDTH = 80; public static Label createLabel(Composite parent, int style, String text, GridData data) { Label label = new Label(parent, style); label.setText(text); label.setLayoutData(data); return label; } public static Label createLabel(Composite parent, int style, String text, int horizontalSpan) { Label label = new Label(parent, style); label.setText(text); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd.horizontalSpan = horizontalSpan; label.setLayoutData(gd); return label; } public static Label createLabel(Composite parent, String text) { return createLabel(parent, text, 1, GridData.HORIZONTAL_ALIGN_BEGINNING); } /** * 创建特定字体的标签 * * @param parent * @param text * @param font 字体 * @return */ public static Label createLabel(Composite parent, String text, Font font) { Label label = createLabel(parent, text); label.setFont(font); return label; } public static Label createLabel(Composite parent, String text, int horizontalSpan) { return createLabel(parent, text, horizontalSpan, GridData.HORIZONTAL_ALIGN_BEGINNING); } /** * 创建特定字体的标签 * * @param parent * @param text * @param horizontalSpan * @param font 字体 * @return */ public static Label createLabel(Composite parent, String text, int horizontalSpan, Font font) { Label label = createLabel(parent, text, horizontalSpan); label.setFont(font); return label; } public static Label createLabel(Composite parent, String text, int horizontalSpan, int gridData) { Label label = new Label(parent, SWT.NONE); label.setText(text); GridData gd = new GridData(gridData); gd.horizontalSpan = horizontalSpan; label.setLayoutData(gd); return label; } public static Label createLabel(Composite parent, String text, GridData gd) { Label label = new Label(parent, SWT.NONE); label.setText(text); label.setLayoutData(gd); return label; } public static Label createLabel(Composite parent, int style, String text) { Label label = new Label(parent, style); label.setText(text); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); label.setLayoutData(gd); return label; } public static Label createTopLabel(Composite parent, String text) { Label topLabel = UIFactory.createLabel(parent, SWT.TOP, text); GridData desGd = (GridData) topLabel.getLayoutData(); desGd.verticalAlignment = SWT.TOP; topLabel.setLayoutData(desGd); return topLabel; } public static Label createSeparatorLabel(Composite parent, int horizontalSpan) { Label sepLabel = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL); GridData data = new GridData(GridData.FILL_HORIZONTAL); sepLabel.setLayoutData(data); data.horizontalSpan = horizontalSpan; return sepLabel; } public static Label createSeparatorLabel(Composite parent) { return createSeparatorLabel(parent, 1); } public static Text createText(Composite parent, int style, GridData data) { Text txt = new Text(parent, style); txt.setLayoutData(data); return txt; } public static Text createText(Composite parent, int style, int horizontalSpan) { GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.widthHint = SIZING_TEXT_FIELD_WIDTH; gd.horizontalSpan = horizontalSpan; return createText(parent, style, gd); } public static Text createText(Composite parent) { return createText(parent, SWT.BORDER); } public static Text createText(Composite parent, int style) { Text text = new Text(parent, style); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.widthHint = SIZING_TEXT_FIELD_WIDTH; text.setLayoutData(gd); return text; } public static Group createGroup(Composite parent, int style, String text, int colnum, GridData data) { Group group = new Group(parent, style); group.setText(text); group.setLayout(new GridLayout(colnum, false)); group.setLayoutData(data); return group; } public static Group createGroup(Composite parent, int sytle, String text, int colnum) { return createGroup(parent, sytle, text, colnum, 1); } public static Group createGroup(Composite parent, int sytle, String text, int colnum, int horizontalSpan) { GridData gd = new GridData(GridData.FILL_BOTH); gd.horizontalSpan = horizontalSpan; return createGroup(parent, sytle, text, colnum, gd); } public static Group createGroup(Composite parent, int sytle, String text, int colnum, int horizontalSpan, int gridData) { GridData gd = new GridData(gridData); gd.horizontalSpan = horizontalSpan; return createGroup(parent, sytle, text, colnum, gd); } public static Button createButton(Composite parent, int style, String text, GridData data) { Button btn = new Button(parent, style); btn.setText(text); btn.setLayoutData(data); return btn; } public static Button createButton(Composite parent, int style, String text, int horizontalSpan) { GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = horizontalSpan; return createButton(parent, style, text, gd); } public static Button createButton(Composite parent, String text) { return createButton(parent, SWT.PUSH, text); } public static Button createButton(Composite parent, String text, Image image) { Button button = createButton(parent, SWT.PUSH, text); button.setImage(image); return button; } public static Button createButton(Composite parent, Image image) { Button button = new Button(parent, SWT.PUSH); button.setImage(image); return button; } public static Button createButton(Composite parent, int style, String text) { Button btn = new Button(parent, style); btn.setText(text); return btn; } public static Composite createComposite(Composite parent, int style, int colnum, GridData data) { Composite comp = new Composite(parent, style); comp.setLayout(new GridLayout(colnum, false)); comp.setLayoutData(data); return comp; } public static Composite createComposite(Composite parent, int style, int colnum, int horizontalSpan) { return createComposite(parent, style, colnum, horizontalSpan, GridData.FILL_BOTH); } public static Composite createComposite(Composite parent, int style, int colnum, int horizontalSpan, int gridData) { GridData gd = new GridData(gridData); gd.horizontalSpan = horizontalSpan; return createComposite(parent, style, colnum, gd); } public static Composite createComposite(Composite parent, int style, int colnum) { Composite comp = new Composite(parent, style); GridData gd = new GridData(GridData.FILL_BOTH); gd.horizontalSpan = 1; comp.setLayout(new GridLayout(colnum, false)); comp.setLayoutData(gd); return comp; } public static Composite createCompositeMini(Composite parent, int style, int colnum, GridData data) { Composite comp = new Composite(parent, style); GridLayout gl = new GridLayout(colnum, false); gl.marginWidth = 0; gl.marginHeight = 0; comp.setLayout(gl); comp.setLayoutData(data); return comp; } public static Composite createCompositeMini(Composite parent, int style, int colnum, int horizontalSpan) { GridData gd = new GridData(GridData.FILL_BOTH); gd.horizontalSpan = horizontalSpan; return createCompositeMini(parent, style, colnum, gd); } public static Composite createCompositeMini(Composite parent, int style, int colnum, int horizontalSpan, int gridData) { GridData gd = new GridData(gridData); gd.horizontalSpan = horizontalSpan; return createCompositeMini(parent, style, colnum, gd); } public static Composite createCompositeMini(Composite parent, int style, int colnum) { return createCompositeMini(parent, style, colnum, 1); } public static Combo createCombo(Composite parent, int style, int horizontalSpan) { Combo combo = new Combo(parent, style); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = horizontalSpan; combo.setLayoutData(gd); return combo; } public static Combo createCombo(Composite parent, int style) { Combo combo = new Combo(parent, style); GridData gd = new GridData(GridData.FILL_HORIZONTAL); combo.setLayoutData(gd); return combo; } public static Text createBigText(Composite container, int horizontalSpan) { Text descTxt = UIFactory.createText(container, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL, 2); GridData desGd = (GridData) descTxt.getLayoutData(); int heightHint = 5 * descTxt.getLineHeight(); desGd = new GridData(GridData.FILL_BOTH); desGd.widthHint = SIZING_TEXT_FIELD_WIDTH; desGd.heightHint = heightHint; desGd.horizontalSpan = horizontalSpan; descTxt.setLayoutData(desGd); return descTxt; } /** * 创建指定初始宽度和高度的输入框 * * @param container 父容器 * @param horizontalSpan 占位 * @param width 指定的宽度 * @param height 指定的高度 * @return 返回输入框的引用 */ public static Text createBigText(Composite container, int horizontalSpan, int width, int height) { Text descTxt = UIFactory.createText(container, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL, 2); GridData desGd = (GridData) descTxt.getLayoutData(); desGd = new GridData(GridData.FILL_BOTH); desGd.widthHint = width; desGd.heightHint = height; desGd.horizontalSpan = horizontalSpan; descTxt.setLayoutData(desGd); return descTxt; } /** * 弹出警告信息,非主线程也提供了支持。 * * @param message 警告信息内容 */ public static void openWarning(String message) { open(MessageDialog.WARNING, "Warning", message); } public static void openWarning(String title, String message) { open(MessageDialog.WARNING, title, message); } public static void openMessage(String title, String message) { open(MessageDialog.INFORMATION, title, message); } public static void openError(String title, String message) { open(MessageDialog.ERROR, title, message); } /** * 弹出信息,非主线程也提供了支持。 * * @param kind the kind of dialog to open, one of {@link #ERROR}, {@link #MessageDialog.INFORMATION}, {@link #MessageDialog.QUESTION}, * {@link #MessageDialog.WARNING}, {@link #MessageDialog.CONFIRM}, or {@link #MessageDialog.QUESTION_WITH_CANCEL}. * @param title * @param message */ public static void open(final int kind, final String title, final String message) { if (message == null || "".equals(message)) { return; } if (Display.getCurrent() != null) { Display display = Display.getCurrent(); Shell shell = display.getActiveShell(); MessageDialog.open(kind, shell, title, message, SWT.NONE); } else { Display.getDefault().syncExec(new Runnable() { public void run() { Display display = Display.getCurrent(); Shell shell = display.getActiveShell(); MessageDialog.open(kind, shell, title, message, SWT.NONE); } }); } } public static ControlDecoration createDecoration(Control control, int style) { ControlDecoration decoration = new ControlDecoration(control, style); // decoration.setImage(ESBAdminImages.getImage(ESBAdminImages.IMG_LIGHT_TIP)); decoration.hide(); return decoration; } public static ControlDecoration createDecoration(Control control) { return createDecoration(control, SWT.LEFT | SWT.TOP); } public static Control createEmptyLine(Composite parent) { Label label = new Label(parent, SWT.LEFT); GridData gd = new GridData(); gd.horizontalAlignment = GridData.BEGINNING; gd.grabExcessHorizontalSpace = false; gd.horizontalSpan = ((GridLayout) parent.getLayout()).numColumns; gd.horizontalIndent = 0; label.setLayoutData(gd); return label; } }
发表评论
-
Netty对象传输
2013-03-06 15:45 3134转自:http://www.xiaoyaochong.ne ... -
Java ArrayBlockingQueue源码解析
2013-03-01 17:43 4812转自:http://www.xiaoyaoch ... -
Eclipse常用快捷键
2013-03-01 15:10 964Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ct ... -
Java7 TransferQueue入门实例
2013-03-01 10:10 2669转自:http://www.xiaoyaochong.ne ... -
Java7 使用WatchService监听文件变化
2013-02-26 13:56 8957Watch service 用来观察被注册了的对象的变化和 ... -
Java7 AutoCloseable入门实例
2013-02-26 10:03 5019本文转自:http://www.xiaoyaochong. ... -
Java7 ForkJoin入门实例
2013-02-19 10:37 10017本文转自:http://www.xiaoyaochong. ... -
Java原子变量与ABA问题(转发)
2013-01-07 23:12 4385原文地址:http://www.xiaoyaochong.ne ... -
Java简单迭代器例子
2013-01-04 14:18 3858一直好奇Foreach的语法,想ArrayList和HashM ... -
Java NIO实例
2012-12-28 09:48 1539一个可运行的简单NIO实例,首先是一个抽象的服务端类Abstr ... -
Java NIO选择器Selector
2012-12-27 13:07 1603Selector消息选择器一般作为SelectableChan ... -
Java Channel解析与实例
2012-12-24 16:09 1310文件IO FileChannel是处理 ... -
Java Comparable接口分析与实践
2012-12-20 14:22 1336此接口对实现它的每个类的对象进行整体排序。这种排序被称为类的自 ... -
PHP远程调用Java服务
2012-12-18 14:16 2384一种比较常见的语言搭配:PHP + Java。 整体架构时这 ... -
Java AIO 入门实例
2012-12-13 16:15 11598原文出处:http://tigerlchen.iteye.co ... -
Java BIO NIO 机制原理资料整理
2012-12-12 14:33 1324转自:http://www.xiaoyaocho ... -
JavaSE Buffer与Netty Buffer比较
2012-12-04 16:15 1386Buffer数据结构: 3 ... -
Java 读取Zip文件中的某个子文件
2012-11-26 14:26 6782在test.zip文件中读取test.xml文件内容。 ... -
Java容器
2012-10-28 21:13 1270Set 一个不包含重复 ... -
Java Socket
2012-08-17 09:28 1078比较经典的用法,使用ServerSocket构建服务端,用a ...
相关推荐
标题中的"swt/jface.jar"是一个关键组件,它在Java开发环境中用于构建用户界面。SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它提供了与原生操作系统更紧密集成的图形用户界面控件。JFace是建立在SWT...
SWT-JFace-3.4-API-.chm 文件很可能是 SWT 和 JFace API 的离线文档,包含了详细的类、方法和示例,是学习和开发过程中不可或缺的参考资料。通过深入学习这个 API 文档,开发者可以充分利用 SWT 和 JFace 的功能,...
9. SWT和JFace的API使用:通过Swt_Jface+API.chm这个帮助文档,可以详细了解每个类和方法的功能和用法。 学习SWT和JFace,开发者不仅可以创建出高性能、美观的Java GUI应用,还能充分利用Eclipse的生态系统,如插件...
SWT 是一个底层的 GUI 工具包,它提供了与操作系统直接交互的能力,使得应用程序能够拥有原生的外观和感觉。JFace 则是建立在 SWT 之上的高级抽象层,它简化了界面设计,减少了代码量,让开发者更加专注于业务逻辑。...
在SWT基础上,JFace引入了ApplicationWindow类,它提供了更方便的窗口管理,包括菜单、工具栏和状态栏的创建。此外,JFace的数据绑定允许数据模型与UI控件直接关联,简化了数据的处理和展示。 3. SWT/JFACE 各常用...
【SWT/JFace实例开发】是一份针对Java GUI编程的学习资源,主要聚焦于SWT(Standard Widget Toolkit)和JFace这两个强大的图形用户界面库。SWT是Eclipse项目的一部分,它提供了一套与操作系统直接交互的原生控件,...
通过深入学习和实践,你可以掌握SWT/JFace的精髓,从而能够熟练地使用这些工具来构建高效、美观的Eclipse插件或者独立的Java桌面应用。《Eclipse从入门到精通》这本书无疑是学习SWT/JFace的宝贵资源,它将引导你逐步...
SWT和JFace的API文档详细列出了所有可用的类、方法和属性,以及它们的参数、返回值和使用示例,为开发者提供了详细的参考。 4. HTML格式:HTML(HyperText Markup Language)是网页的标准标记语言,用于组织网页...
6. **命令框架**:JFace的命令框架允许开发者定义和执行可扩展的用户操作,如菜单项和工具栏按钮。 结合使用SWT和JFace,开发者可以创建高效且用户友好的Java GUI应用,同时保持代码简洁和可维护。学习和熟练掌握这...
在这里,它可能包含了实现Eclipse SWT和JFace实例的类。每个实例可能是一个独立的功能模块,例如,展示如何使用SWT控件、如何创建对话框、如何实现数据绑定等。 "firstSWT"可能是第一个SWT示例的目录或文件,通常...
Eclipse SWT (Standard Widget Toolkit) 和 JFace 是两个在Java编程环境下用于构建图形用户界面(GUI)的重要库,尤其在开发Eclipse插件和RCP(Rich Client Platform)应用程序时非常常见。SWT是Eclipse项目的一个...
SWT是Java的一个GUI(图形用户界面)工具包,它提供了一种低级别的、与平台相关的API,用于创建桌面应用程序。SWT设计的目的是为了克服Java AWT和Swing的性能问题,通过直接调用操作系统提供的原生控件来实现高效的...
SWT提供了诸如按钮、文本框、列表、树等基本控件,以及对话框、菜单和工具栏等更复杂的元素。源代码中,你可以看到如何实现这些控件的绘制、事件处理以及与其他组件的交互,这对于深入理解GUI编程和优化界面性能非常...
JFace提供了创建和管理视图和编辑器的工具类。 5. **对话框和小部件**:JFace提供了一些预定义的对话框,如MessageDialog、InputDialog等,以及自定义对话框的构建基础,如Shell和Composite。 6. **表单和表单构建...
在 SWT/JFace 中,可以通过 `org.eclipse.swt.widgets.Shell` 类创建此框架,并通过设置其属性来实现 MDI 支持。 2. **MDI 子窗口**:这些是用户可以在 MDI 框架内打开的窗口,通常用 `org.eclipse.swt.widgets....
这篇文档将深入探讨SWT和JFace 3.5版本的API,帮助开发人员更好地理解和利用这些工具。 1. SWT(Standard Widget Toolkit):SWT是Eclipse的基础UI库,它直接与操作系统进行交互,提供了与平台相关的控件,如按钮、...
这个文件可能包含了一些辅助工具类,用于简化SWT和JFace的分页实现,比如提供分页控件、数据加载和页面切换的封装。`xxx.txt`可能是文档或示例代码,帮助理解如何使用这些工具。 总结,"SWT/JFace分页"涉及到使用...
- **Eclipse 的 SWT 和 JFace 应用程序:** 可以在 Eclipse IDE 内部开发基于 SWT 和 JFace 的应用程序,利用 Eclipse 的强大工具进行调试和测试。 - **独立应用程序:** 也可以构建独立的 SWT/JFace 应用程序,这些...
手写基于Swt/Jface图片工厂实现图片传输界面更新。应用于项目中的工具类,供大家学习参考。提供一种新的学习思路。