- 浏览: 197464 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
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 3063转自:http://www.xiaoyaochong.ne ... -
Java ArrayBlockingQueue源码解析
2013-03-01 17:43 4729转自:http://www.xiaoyaoch ... -
Eclipse常用快捷键
2013-03-01 15:10 925Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ct ... -
Java7 TransferQueue入门实例
2013-03-01 10:10 2627转自:http://www.xiaoyaochong.ne ... -
Java7 使用WatchService监听文件变化
2013-02-26 13:56 8885Watch service 用来观察被注册了的对象的变化和 ... -
Java7 AutoCloseable入门实例
2013-02-26 10:03 4983本文转自:http://www.xiaoyaochong. ... -
Java7 ForkJoin入门实例
2013-02-19 10:37 9951本文转自:http://www.xiaoyaochong. ... -
Java原子变量与ABA问题(转发)
2013-01-07 23:12 4340原文地址:http://www.xiaoyaochong.ne ... -
Java简单迭代器例子
2013-01-04 14:18 3816一直好奇Foreach的语法,想ArrayList和HashM ... -
Java NIO实例
2012-12-28 09:48 1460一个可运行的简单NIO实例,首先是一个抽象的服务端类Abstr ... -
Java NIO选择器Selector
2012-12-27 13:07 1554Selector消息选择器一般作为SelectableChan ... -
Java Channel解析与实例
2012-12-24 16:09 1270文件IO FileChannel是处理 ... -
Java Comparable接口分析与实践
2012-12-20 14:22 1293此接口对实现它的每个类的对象进行整体排序。这种排序被称为类的自 ... -
PHP远程调用Java服务
2012-12-18 14:16 2337一种比较常见的语言搭配:PHP + Java。 整体架构时这 ... -
Java AIO 入门实例
2012-12-13 16:15 11552原文出处:http://tigerlchen.iteye.co ... -
Java BIO NIO 机制原理资料整理
2012-12-12 14:33 1276转自:http://www.xiaoyaocho ... -
JavaSE Buffer与Netty Buffer比较
2012-12-04 16:15 1343Buffer数据结构: 3 ... -
Java 读取Zip文件中的某个子文件
2012-11-26 14:26 6740在test.zip文件中读取test.xml文件内容。 ... -
Java容器
2012-10-28 21:13 1157Set 一个不包含重复 ... -
Java Socket
2012-08-17 09:28 1038比较经典的用法,使用ServerSocket构建服务端,用a ...
相关推荐
手写基于Swt/Jface图片工厂实现图片传输界面更新。应用于项目中的工具类,供大家学习参考。提供一种新的学习思路。
不过由于是SWT+JFace实现的桌面程序,想研究Java桌面程序应用的朋友也可以下载看看,其一些特性及设计思路还是比较有用的。 <br>详细资料及截图请参考压缩包中doc/how to run.doc文档 <br>新特性: 支持拽...
AWT中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面的类,这些类被称为组件。Java Swing是Java...
15.1 JFace的窗口类(Window类) 290 15.2 应用程序窗口ApplicationWindow类 292 15.3 带有菜单栏的主程序窗口 293 15.3.1 简单写字板程序示例 293 15.3.2 添加菜单栏的基本步骤 297 15.3.3 创建菜单项 ...
案例7-2 借助SWT/JFace实现录入信息有效性检查 253 7.4 SWT/JFace中的常用组件 258 案例7-3 借助SWT/JFace中实现文件阅读器 259 7.5 SWT/JFace中的线程 264 案例7-4 在SWT/JFace中实现多线程效果 265 第8...
虽然我们都知道SWT 和JFace 是工具(套件),但更科学地讲它们是软件类库。它们由包含java 类和接口的文件包组成。但又是什么使得这些组件能让你任意组合GUI 呢?你的应用程序可以快速运行,高效运用计算机内存并...
FillLayout布局 FillLayout是非常简单的一种布局方式,它会以同样大小对父组件中的子组件进行布局,这些子组件将以一行或一列的形式排列。... 演示代码: 代码如下:package swt_jface.demo2; import org.e
左下角 Style 里选 -> Swt ->Shell 完成新建类 还可以调出常用视图: 1.Window -> Show View -> Other 选 Java -> Java Beans 2.Window -> show View -> Other 选 General -> Properties 然后就可以很容易的使用ve来...
8.5.2 JFace用户界面架构..... 206 8.6 Workbench架构...... 208 8.6.1 存储持久性值..... 209 8.6.2 使用胖客户端平台创建应用程序..... 209 8.6.3 使用并发性架构维持对用户的快速响应..... 210 8.6.4 通过...
8.5.2 JFace用户界面架构..... 206 8.6 Workbench架构...... 208 8.6.1 存储持久性值..... 209 8.6.2 使用胖客户端平台创建应用程序..... 209 8.6.3 使用并发性架构维持对用户的快速响应..... 210 ...
8.5.2 JFace用户界面架构..... 206 8.6 Workbench架构...... 208 8.6.1 存储持久性值..... 209 8.6.2 使用胖客户端平台创建应用程序..... 209 8.6.3 使用并发性架构维持对用户的快速响应..... 210 ...