前段从网上找RCP用Dialog做登录的方法一直没找到,后来根据老师的提示终于会了,所以赶紧就做完分享给大家,希望能为各位童鞋提供小小的帮助。
首先在创建好的Dialog中创建登录Button,然后生成点击事件。修改如下:
Button btnNewButton = new Button(shell, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
/*result为open方法的返回值。所以利用成员变量result给其赋值*/
result = "ok";
shell.close();
}
});
btnNewButton.setBounds(176, 112, 80, 27);
btnNewButton.setText("New Button");
然后在项目核心包中找到Application类。修改Start方法如下:
Display display = PlatformUI.createDisplay();
/*在Dialog中赋完值的result就可以通过Dialog的Open方法获取到
* 所以利用result中是否被赋值判断是否打开主窗口*/
LoginDialog login = new LoginDialog(new Shell(),SWT.NONE);//声明并实例化Dialog
Object result = login.open();
if(result!=null){
try {
int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART)
return IApplication.EXIT_RESTART;
else
return IApplication.EXIT_OK;
} finally {
display.dispose();
}
}else{
return IApplication.EXIT_OK;
}
就这样简单的点击Dialog中的按钮打开主窗体的方法就完成了,省下的就是添加Dialog中按钮点击事件的判断,从而实现简单的登录。