java - 如何在dialog.open()之后阻止JFace对话框关闭

标签 java dialog swt jface

我有一个 JFace 对话框,这就是我打开的方式:

SampleDialog dialog = new SampleDialog(shell);
if(Window.OK == dialog.open())
{
  // do something
  if(condition)
  {
    MessageBox dialog = new MessageBox(shell, SWT.ICON_QUESTION | SWT.OK| SWT.CANCEL);
    dialog.setText("Sample");
    dialog.setMessage("Some problem in processing");
  }
  else
  {
     // do something
  }
}

如果控件转到 if block ,我不希望关闭对话框。如何实现这一目标?

最佳答案

您应该通过重写对话框中的 okPressed 方法来显示检查和消息框。

public class SampleDialog extends Dialog
{

  @Override
  protected void okPressed()
  {
    if (condition)
     {
        // TODO show your message box
     }
    else
     {
       // Allow the dialog to close
       super.okPressed();
     } 
  }

}

关于java - 如何在dialog.open()之后阻止JFace对话框关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342843/

相关文章:

dialog - Vaadin 确认对话框

java - 如何使用SWT浏览器检测互联网连接(或处理服务器不可用)

java - 更改字体中的 classcastException

java - 检查按钮周围是否有空白区域

java - GAE/J 低级数据存储 API 和 DataNucleus JDO 之间拥有的一对多关系的差异

java - 在服务测试中使用真实的组件

javascript - 如何使 "xp"命名空间中的不同 id 可见

java - 带有 TextView 的静态对话框

java - SWT:如何在 OS X 上使用带参数的 Program.launch()?

java - JSP/Struts/Session 控制的 Web 应用程序中的爬虫