JFace Wizard 自定义 “Next” 按钮事件
来源:互联网 发布:win7公用网络是黑色的 编辑:程序博客网 时间:2024/05/29 08:15
JFace 的 Wizard是很常用的UI,我们也很需要在点击Next的时候做些动作,Wizard 本身没有给我们提供一个很容易发现的接口,虽然有个 getNextPage() 方法,但是很难用 嘿嘿
得自己动动手啦。
首先呢,写个类来继承WizardDialog,并覆盖他的buttonPressed方法,这样就能在点击Next的时候做动作了。
Code Snippet:
public class CreditSCWizardDialog extends WizardDialog {
public CreditSCWizardDialog(Shell parentShell, IWizard newWizard) {
super(parentShell, newWizard);
}
@Override
protected void buttonPressed(int buttonId) {
if (buttonId == IDialogConstants.NEXT_ID){
// 点击Next的时候 执行actionWhenNextButtonPressed()方法
// 我这里这个方法有个boolean的返回值。
if (actionWhenNextButtonPressed()) {
super.buttonPressed(buttonId);
}
}
else {
super.buttonPressed(buttonId);
}
}
protected boolean actionWhenNextButtonPressed() {
// 这里填写要做的动作
// 我想很多情况下,你的Wizard会有很多页面对吧
// 而你呢,不同的页面又想有不同的动作,怎么办?
}
}
其实呢,很简单了。
再写一个类继承继承WizardPage,在这个类里面弄个抽象方法,
比如这个抽象方法叫做:nextButtonClick().
public abstract class CreditSCWizardPage extends WizardPage {
protected CreditSCWizardPage(String pageName) {
super(pageName);
}
protected abstract boolean nextButtonClick();
}
嗯,我想你看明白了对吧,这里有最关键的一步,we are almost there.
修改刚才的那个WizardDialog类中的actionWhenNextButtonPressed()方法。
protected boolean actionWhenNextButtonPressed() {
IWizardPage currentPage = getWizard().getContainer().getCurrentPage();
return ((CreditSCWizardPage) currentPage).nextButtonClick();
}
这样呢,你的每个WizardPage实现中都去实现自己的nextButtonClick()方法就行啦
- JFace Wizard 自定义 “Next” 按钮事件
- JFace Wizard 自定义 “Next” 按钮事件
- RCP之Wizard开发- 怎么更新next和finish按钮
- RCP之Wizard开发- 怎么更新next和finish按钮
- 自定义事件虚拟按钮
- 自定义按钮点击事件
- JFace组件Wizard小用(一)
- JFace组件Wizard小用(二)
- JFace组件Wizard小用(三)
- 动态改变JFace Wizard的WizardPage数量
- 自定义按钮实现Android 返回按钮事件
- 自定义按钮实现android 返回按钮 事件
- jface WizardPage切换事件
- SWT/Jface 事件监听
- jface WizardPage切换事件
- eclipse wizard dialog 按钮控制
- swt/jface 自定义 Dialog
- swt/jface 自定义 Dialog
- poj2559 Largest Rectangle in a Histogram hdu1505 City Game
- Cocos2d配置环境
- [C++]常量定义
- int 和 String 互相转换的多种方法
- 大话存储系列6——RAID实现
- JFace Wizard 自定义 “Next” 按钮事件
- 黑马程序员_java入门
- android关闭应用程序
- ruby class initilize with hash
- HEVC/H265 HM10.0 分析(一)NALread.cpp
- 黑马程序员-代理、实现类似Spring的可配置AOP框架
- 获取手机的IMSI码,并判断是中国移动\中国联通\中国电信
- 动态分配二维数组 连续内存,不连续内存实现
- 黑马程序员_java面向对象