- 浏览: 1152643 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
今天写了一个Jface的dialog,作为配置界面,其中有个配置项特别长,于是想到了ScrollComposite滚动面板来显示。我的做法是在把这个配置项放在一个Composite中,然后使用scrollComposite.setContent(Composite)来加入滚动面板。目的是出现一个滚动面板显示配置项。
但是,问题出现了,滚动条始终没有出现,于是加了一些配置:
- Composite composite = new Composite(parent, SWT.NONE);
- ScrolledComposite panel = new ScrolledComposite(composite, SWT.BORDER | SWT.V_SCROLL);
- panel.setLayoutData(new GridData(GridData.FILL_VERTICAL));
- //强制显示滚动条
- panel.setAlwaysShowScrollBars(true );
- panel.setExpandHorizontal(true );
- panel.setExpandVertical(true );
- // 拖动滚动条里可以看到的Composite的最大高度
- panel.setMinHeight(200 );
- panel.setLayout(new GridLayout( 1 , false ));
- Composite subPanel = new Composite(taskPanel, SWT.BORDER);
- subPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
- subPanel.setLayout(new GridLayout( 1 , false ));
- panel.setContent(subPanel);
但是还是不行,原以为增加了
以后会显示滚动条。但是结果却是滚动条出现了,但是滚动按钮却没有出现,而且滚动面板和里面Composite一样高,scrollComposite似乎一点作用也没有。
查了好几个小时一直找不到原因,最后看到了一封mail上面的原文是这么写的:
写道
you must constrain your composites (both parent and scrolled) otherwise
they will take as much room as they need.
they will take as much room as they need.
意思就是你要限制父亲面板的大小,否则滚动面板会跟着里面的Composite一起涨。受到这句话的启发,我尝试设置父容器的大小:
无果,于是我又试设置JFace Dialog的Shell大小:
- protected Control createDialogArea(Composite parent){
- Shell shell = getShell();
- // 设置对话框大小
- shell.setSize(500 , 300 );
- ...
结果更糟糕了,什么也显示不出来了。最后,看了JFace Dialog源代码以后才发现,需要重载下面这个函数:
Dialog中的源代码通过调用super.getInitialSize()来动态计算Dialog中的各个SWT组件占用的宽度和高度,然后将Dialog的shell设置成这些宽高的总和;于是,我重载了这个函数,让它返回一个固定的宽高:
- /**
- * 重载Dialog.getInitialSize方法设置对话框大小
- */
- protected Point getInitialSize() {
- return new Point( 500 , 300 );
- }
这样,滚动面板终于不和里面的Composite一起长了。但是,滚动按钮还是没有,怎么回事呢,原来是
的值太小了,设成800就可以了。
好了,问题圆满解决,主要原因是JFace Dialog自动计算宽高的缘故,我把整理过的代码贴出来:
- protected Control createDialogArea(Composite parent){
- ...
- Composite composite = new Composite(parent, SWT.NONE);
- ScrolledComposite panel = new ScrolledComposite(composite, SWT.BORDER | SWT.V_SCROLL);
- panel.setLayoutData(new GridData(GridData.FILL_VERTICAL));
- //强制显示滚动条
- panel.setAlwaysShowScrollBars(true );
- panel.setExpandHorizontal(true );
- panel.setExpandVertical(true );
- // 拖动滚动条里可以看到的Composite的最大高度
- panel.setMinHeight(800 );
- panel.setLayout(new GridLayout( 1 , false ));
- Composite subPanel = new Composite(panel, SWT.BORDER);
- subPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
- subPanel.setLayout(new GridLayout( 1 , false ));
- panel.setContent(subPanel);
- ...
- }
- /**
- * 重载Dialog.getInitialSize方法设置对话框大小
- */
- protected Point getInitialSize() {
- return new Point( 500 , 300 );
- }
希望大家少走弯路!
发表评论
-
RCP开发者的好去处之ICON系列(持续更新中... ...)
2012-03-31 10:13 1124为了找个合适的图片是不是头大的不像样子了?OK,我现在就 ... -
RAP 整合 Spring (基于 Spring-osgi )
2012-03-31 10:12 1386RAP 介绍请见: http://www.eclipse. ... -
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
2012-03-25 14:50 1464引用 在rcp的路径添加了mysql驱动,并添加之cla ... -
SWT实现弹出日历控件
2012-03-27 08:00 2584实现像网页上的那种用户单击一个Text框然后框下面出现一个日历 ... -
JFace进度条
2012-03-27 08:01 1115Java代码 someB ... -
getConfigurationElementsFor 无法获得扩展点的信息
2012-03-26 10:27 1092做项目的时候RCP程序在eclipse调试环境下面运行正常 ... -
测试rcp 和 rap 何时触发 组建.addListener(SWT.xxx, new Listener() )的方法
2012-02-24 14:22 1282Java代码 直接通过反射让组建监 ... -
RAP 界面显示不完全的问题
2012-02-24 14:22 1238rap运行第一刷新界面总是刷新不完整,组件错位,后台报Layo ... -
Uploading files with RAP 1.4
2012-02-17 11:37 1617One of the new things in RAP 1. ... -
【RAP】CAS PIA 快速浏览入口地址
2012-02-07 08:23 1238下面的链接是访问RAP应用的入口。有2中方式,图片上已经注明。 ... -
RAP 与 RCP的区别
2012-02-07 08:23 1325RAP 可以让开发人员使用 JAVA API 和按照 E ... -
将Eclipse RAP部署到Tomcat中
2012-02-07 08:23 1140在上次成功将我的RCP项目迁移到浏览器中运行后,开始研究 ... -
RAP(Rich AJAX Platform)的可部署文件下载
2012-02-07 08:24 1138这是我自己做的RAP的可部署文件,可以下载下来解压到Tom ... -
Eclipse rcp/rap 开发经验总结(15) -rap如何使用js
2012-02-03 08:11 14501. 把输入的字符串当 javascript 执行 ... -
Eclipse rcp/rap 开发经验总结(14) -rap 图片、数据缓存处理
2012-02-03 08:10 1514一、概述 在进行了 rap 的基本学习之后,您对 rap ... -
Eclipse rcp/rap 开发经验总结(13) -Rap/Rcp保存按钮处理方式
2012-02-03 08:10 1084一、概述 在做项目的过程中,处理编辑区的保存机制的时候。发 ... -
Eclipse rcp/rap 开发经验总结(12) -Rap 优化之组件的销毁
2012-02-03 08:10 874一、概述 经过几个月的rap 项目实战,总结了一些小 ... -
Eclipse rcp/rap 开发经验总结(11) -rcp/rap与spring ibatis集成
2012-02-03 08:10 13131. rcp/rap 与 spring 集成 Activa ... -
Eclipse rcp/rap 开发经验总结(10) -Rap不同系统间的差异和处理方式
2012-02-01 08:01 1398平常进行 rap 程序开发一般都是在 win ... -
Eclipse rcp/rap 开发经验总结(9) - rap上传与下载
2012-02-01 08:01 1052一 上传 上传即将文件上传到服务器上,在客户端需 ...
相关推荐
eclipe 4以上的插件就支持CSS主题切换的功能 plugin.xml 中扩展点org.eclipse.core.runtime.products、org.eclipse.e4.ui.css.swt.theme
Eclipse SWT(Standard Widget Toolkit)和JFace是用于构建Java GUI应用程序的强大工具,它们与Eclipse IDE紧密集成,提供了一套丰富的控件和抽象层,使得开发者能够创建出功能丰富的桌面应用。本压缩包包含的"全部...
7. **JFace服务**:包括Dialog、WorkbenchWindow、Action、SelectionService等,它们简化了窗口、动作和选择事件的管理。 8. **数据绑定**:JFace的数据绑定框架允许数据模型与用户界面元素之间的双向同步,使得...
JFace的主要组件包括视图(View)、编辑器(Editor)、对话框(Dialog)以及数据绑定机制。 3. Eclipse IDE与SWT/JFace Eclipse作为一款强大的集成开发环境(IDE),其用户界面大量使用了SWT和JFace。这使得...
标题中的"swt/jface.jar"是一个关键组件,它在Java开发环境中用于构建用户界面。SWT(Standard Widget Toolkit)是IBM开发的一个开源GUI库,它提供了与原生操作系统更紧密集成的图形用户界面控件。JFace是建立在SWT...
在Java编程环境中,JFace库是Eclipse RCP(Rich Client Platform)的一部分,它提供了一套高级用户界面组件,如TableViewer和TreeViewer,用于构建桌面应用程序。在文档标题和描述中提到的问题主要涉及到JFace中的...
"org.eclipse.jface.rar" 是一个压缩包文件,包含的是Eclipse IDE中JFace库的源代码。Eclipse JFace 是一个...同时,对源代码的深入理解也有助于开发者解决在使用JFace过程中遇到的问题,进行更高效的调试和性能优化。
SWT(Standard Widget Toolkit)和JFace是Java编程中用于构建图形用户界面(GUI)的两个关键库,尤其在Eclipse开发环境中广泛应用。本篇文章将深入探讨SWT和JFace的相关知识点,帮助读者理解这两个库的功能、优势...
SWT (Standard Widget Toolkit) 和 JFace 是两个用于构建Java图形用户界面(GUI)的开源库,它们在Java开发中特别是在开发桌面应用时扮演着重要角色。本文将深入探讨这两个库,以及如何入门使用它们。 SWT是IBM开发...
5. **对话框(Dialog)**:登录窗口可能是一个独立的 `Dialog` 对象,它继承自 `org.eclipse.jface.dialogs.Dialog` 类。对话框提供了一种方便的方式,让用户在主应用程序窗口之外输入信息,且可以自定义其大小、...
JFace提供了一些高级组件,如视图(View)、编辑器(Editor)、对话框(Dialog)和表单(Form)等,并且包含数据绑定框架,使得模型与视图的分离变得更加简单。JFace还引入了模型-视图-控制器(MVC)设计模式,有助...
JFace是Eclipse框架中的一个重要组成部分,主要用于提供面向用户的界面组件和数据抽象,使得开发者能够构建更加简洁、可维护的图形用户界面(GUI)。JFace的源码分析可以帮助我们深入理解其内部工作原理,提高开发...
《SWT_JFace_in_Action》是一本专注于Java编程领域中SWT(Standard Widget Toolkit)和JFace技术的实践指南。这本书深入浅出地讲解了如何使用这两项强大的工具来构建功能丰富的图形用户界面(GUI)。SWT是Eclipse...
SWT (Standard Widget Toolkit) 和 JFace 是 Eclipse 开发平台中的两个重要组件,主要用于构建图形用户界面(GUI)。它们是 Java 语言中的 GUI 工具包,为开发者提供了丰富的控件和高级界面功能。 SWT 是一个直接与...
在实际开发中,JFace 被广泛应用于构建各种桌面应用,特别是那些具有复杂数据处理需求的应用程序。例如,Eclipse IDE 自身就大量使用了 JFace 和 SWT 技术来构建其强大的功能界面。 #### 二、JFace的核心特性 1. *...
JFace是Eclipse框架中的一个重要组成部分,它提供了一组高级的用户界面组件和工具,用于简化Java应用程序的开发。在Eclipse这样的IDE中,JFace起到了桥梁的作用,连接了SWT(Standard Widget Toolkit)和更高级别的...
4. **Dialogs**: JFace扩展了SWT的对话框,提供了一些预定义的对话框,如SelectionDialog、InputDialog等,同时提供了构建自定义对话框的工具。 5. **Table and Tree Viewer**: JFace的TableViewer和TreeViewer是对...
在JFace 3.14这个版本中,我们主要会讨论以下几个核心概念和组件: 1. **Viewer框架**:JFace 的 Viewer 框架是其设计的核心部分,它提供了一种用于展示数据的统一方法。Viewer可以看作是一个可定制的数据视图,...
SWT (Standard Widget Toolkit) 和 JFace 是两个用于构建Java图形用户界面(GUI)的开源库,它们在Java开发领域中被广泛使用,特别是在Eclipse IDE及其插件开发中。SWT是底层的UI库,提供了与操作系统原生控件直接...
这篇博客文章可能详细介绍了如何在实际开发中应用JFace,并且可能包含了一些示例代码来帮助读者理解其工作原理。 在Java编程中,JFace的作用是作为SWT的抽象层,使得开发者可以更加专注于业务逻辑,而不是底层的GUI...