如何在Jface对话框上模拟OK按钮单击

时间:2012-09-20 17:57:04

标签: java swt jface

我是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(未知来源)

有人可以建议如何处理这种情况吗?

1 个答案:

答案 0 :(得分:0)

要关闭对话框,只需致电:

this.setReturnCode(OK);
this.close();

这就是所有要做的事情......

您也可以尝试:

super.okPressed();