目的1:
打开一个新的对话框时,如何设定它和父对话框的相对位置?比如在登录对话框有一个“创建新帐号”的按钮,用户点击以后,就出现新的对话框用于注册,请问如何能让新的对话框和旧对话框排列的整齐一些?应该是能设定二者的相对位置吧?
最开始,以为要用
Shell.setLocation来设置,但是对于一个Dialog而言,它的Shell在什么时候才能初始化呢?
我 在构造函数里面,configureShell(Shell newShell)方法里面,Control createDialogArea(Composite parent)方法里面都调用过了this.getShell方法想得到当前的Shell,结果都抛出空指针异常....
后来看书发现,应该重写protected Point getInitialLocation(Point initialSize)方法
比如,在最开始的例子中,在第二个对话框中我重写了该方法,代码如下:
- protected Point getInitialLocation(Point initialSize) {
- Point location = new Point(this.getParentShell().getLocation().x
- + this.getParentShell().getBounds().width, this
- .getParentShell().getLocation().y
- + this.getParentShell().getBounds().height
- - this.getInitialSize().y);
- return location;
- }
其结果就是两个对话框底部对齐的平行排列:)
目的2: 登陆对话框要记住上次的位置。
想了半天,好像只能用IPreferenceStore来做了,在继承了AbstractUIPlugin的类中放入两个常量:
- public static final String LOGINDIALOG_POSITION_X = "LOGINDIALOG_POSITION_X";
-
- public static final String LOGINDIALOG_POSITION_Y = "LOGINDIALOG_POSITION_Y";
然后重写两个方法:
- @Override
- protected Point getInitialLocation(Point initialSize) {
-
- String xposition = preferenceStore
- .getString(Peer68TPlugin.LOGINDIALOG_POSITION_X);
- String yposition = preferenceStore
- .getString(Peer68TPlugin.LOGINDIALOG_POSITION_Y);
- if (xposition == null || yposition == null || xposition == ""
- || yposition == "") {
- return super.getInitialLocation(initialSize);
- } else {
- return new Point(Integer.parseInt(xposition), Integer
- .parseInt(yposition));
- }
- }
-
- @Override
- public boolean close() {
- preferenceStore.setValue(Peer68TPlugin.LOGINDIALOG_POSITION_X, this
- .getShell().getLocation().x);
- preferenceStore.setValue(Peer68TPlugin.LOGINDIALOG_POSITION_Y, this
- .getShell().getLocation().y);
- return super.close();
- }
大功告成!
分享到:
- 2006-11-08 15:23
- 浏览 3504
- 评论(5)
- 论坛回复 / 浏览 (5 / 6706)
- 查看更多
相关推荐
标题提及的"org.eclipse.jface.text_3.8.101.v20130802-1147"是Eclipse中的一个关键组件,它负责文本编辑器的相关功能,包括代码提示。 `org.eclipse.jface.text`是Eclipse JFace库的一部分,JFace是构建用户界面的...
eclipse 代码补全时回车上屏问题-eclipse代码补全 org.eclipse.jface.databinding_1.9.100.v20190805-1255.jar,放到 ~/.p2/pool/plugins替换即可
org.eclipse.jface.text_3.16.300.v20200526-0811.jar
eclipse 取消 "=",空格,“.”的自动补全。org.eclipse.jface.text_3.9.2.v20141003-1326.jar修改版。 使用方法:解压复制到安装目录的同级目录替换即可。安全起见,可以先备份原文件。
最新版Eclipse代码上屏jar包,取消空格、点以及分号的代码自动补全上屏,增加tab键上屏,将jar包复制到eclipse根目录下的plugins文件夹,替换源文件即可。
这个是针对Eclipse SDK Version: 4.3. jface.text._3.8.1源码。可直接修改该版本的内容。实现自己想要的功能。
"org.eclipse.jface.rar" 是一个压缩包文件,包含的是Eclipse IDE中JFace库的源代码。Eclipse JFace 是一个用于构建用户界面(UI)的高级Java框架,它是Eclipse平台的重要组成部分,主要设计目的是简化Swing和AWT等...
用org.eclipse.jface.text_3.9.0.201407111035.jar替换Eclipse Luna原配的org.eclipse.jface.text_3.9.0.v20140521-1657.jar(注意先备份)。 费老劲自己改的,想要源代码的话,从下载的zip里面找org.eclipse.jface....
将现有JAR文件直接替换对应的org.eclipse.jface.text_*(后面的是版本号),只能提示增强,能在abcdef....等输入时提示,解决空格和=不能输入的问题(第一次自己编译的插件 嘎嘎)只能提示增强方法自己搜,这个是解决...
Eclipse 4.6.3版本的org.eclipse.jface.text_3.11.2.v20170220-1911.jar修改版 这个版本取消了空格,分号,等号上屏的问题!
因为10.7.1已经完美破解(修正了war文件到处问题),故放上该版本修改过的org.eclipse.jface.text_3.7.2.v20111213-1208.jar 代码补全空格不上屏,适合习惯使用vs等工具的用户 详细描述参见10.0时的插件 ...
最新版Eclipse代码自动补全,替换Eclipse安装目录下制定jar包,实现只有tab下智能提示代码上屏,回车空格状态下正常!
《深入解析Eclipse插件库:jface.text 3.12.1》 在Java开发领域,Eclipse是一款广受赞誉的集成开发环境(IDE),其强大的功能和丰富的插件库是其核心优势之一。本文将围绕"jface.text 3.12.1.zip"这一特定的Eclipse...
这个是针对Eclipse SDK Version: 3.7 jface.text._3.7.2源码。可直接修改该版本的内容。实现自己想要的功能。
标题中的"org.eclipse.jface.text_3.12.2.v20180112-1341.zip"是Eclipse插件的一个版本,它专注于文本编辑功能。Eclipse是一个开源的集成开发环境(IDE),而JFace是Eclipse的一部分,提供了面向用户的界面组件。...
eclipse org.eclipse.jface.text插件,取消等号、空格和分号触发的自动补全
org.eclipse.jface.text_3.8.101.v20130802-1147去除使用空格和“;”字符串上屏
1.eclipse自动补全见百度...2.windows eclipse-jee-2019-12-R-win32-x86_64 取消自动补全加类型名 替换根目录下的plugins\org.eclipse.jface.text_3.16.100.v20191203-1634.jar
eclipse_4.7.3a,eclipse/plugins里面的org.eclipse.jface.text,按“=”和空格以后不会自动补完代码,防止eclipse过于的智能