我是SWT和JFace的新手。我有一个附有TableViewer
的对话框。我在TableViewer
添加了一个过滤器。我的要求是,当搜索返回多个项目时,Dialog应该显示它们并让用户选择他想要的项目,然后单击OK,以便将所选值传递回父函数。
我没有任何问题地实施了它。但是当搜索只返回一个值时,该值应该传递回父窗口,对话框应该关闭。
我在通过代码关闭对话框时遇到问题。我在条件满足时尝试使用okPressed()
。
这是我打电话给okPressed()
的地方:
if(!searchStr.isEmpty()){
dialogSearch();
if(tableViewer.getTable().getItems().length == 1){
TableItem[] itemSelected = tableViewer.getTable().getItems();
pojoRefType = (Object)itemSelected[0].getData();
this.okPressed();
}
}
java.lang.IllegalArgumentException:参数无效 org.eclipse.swt.SWT.error(未知来源)at org.eclipse.swt.SWT.error(未知来源)
有人可以建议如何处理这种情况吗?
答案 0 :(得分:0)
要关闭对话框,只需致电:
this.setReturnCode(OK);
this.close();
这就是所有要做的事情......
您也可以尝试:
super.okPressed();