【问题标题】:How can I simulate OK button click on a Jface dialog如何模拟确定按钮单击 Jface 对话框
【发布时间】:2012-09-20 17:57:04
【问题描述】:

我是 SWT 和 JFace 的新手。我有一个带有TableViewer 的对话框。我在TableViewer 中添加了一个过滤器。我的要求是,当搜索返回多个项目时,对话框应显示它们并让用户选择他想要的项目,然后单击确定,以便将所选值传递回父函数。

我实现它没有任何问题。但是当搜索只返回一个值时,这个值应该传回父窗口,Dialog应该关闭。

我在通过代码关闭对话框时遇到问题。我尝试在满足条件时使用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(未知来源)在 org.eclipse.swt.SWT.error(Unknown Source)

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

【问题讨论】:

  • 你到底是从哪里得到这个错误的?
  • 很高兴得到对我的回答和/或评论的任何回复。

标签: java swt jface


【解决方案1】:

要关闭对话框,只需调用:

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

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

你也可以试试:

super.okPressed();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    相关资源
    最近更新 更多