【问题标题】:Which Shell object is the correct one constructing a JFace dialog哪个 Shell 对象是正确的构造 JFace 对话框的对象
【发布时间】:2016-01-23 02:51:18
【问题描述】:

我是 JFace 的新手,我正在测试它的一些组件。
现在我对显示模式窗口的不同方法有点困惑。
例如,我有一个带有按钮的应用程序,并希望通过单击此按钮打开一个对话框:

public class TestApp extends ApplicationWindow {
  protected Control createContents(Composite parent) {
    Button button1 = new Button(parent, SWT.PUSH);
    button1.setText("Open");
    button1.addSelectionListener(new SelectionAdapter() {
      public void widgetSelected(SelectionEvent e) {
        MyDialog myDialog = new MyDialog(...);
        myDialog.open();
      }
    });
  }
}

现在的问题是我必须将哪个 Shell 对象分配给 Dialog 构造函数。
为此,我找到了以下替代方案:

new MyDialog(getShell());
new MyDialog(parent.getShell());
new MyDialog(new Shell());

但哪一个是正确的或最常见的?区别在哪里?

【问题讨论】:

    标签: java dialog jface


    【解决方案1】:

    你应该使用当前对话框/窗口的外壳:

    new MyDialog(getShell());
    

    是你通常使用的。

    这使新对话框成为当前窗口的子窗口。所以如果你关闭窗口,对话框也会关闭。

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 2019-09-12
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多