哪个 Shell 对象是构建 JFace 对话框的正确对象
Which Shell object is the correct one constructing a JFace dialog
我是 JFace 的新手,正在测试它的一些组件。
现在我对显示模态 window.
的不同方法有点困惑
例如,我有一个带有按钮的应用程序,我想通过单击此按钮打开一个对话框:
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());
但哪个是正确的或最常见的?区别在哪里?
你应该使用当前对话框的 shell / window 所以:
new MyDialog(getShell());
是你平时用的。
这使新对话框成为当前 window 的子对话框。因此,如果您关闭 window 对话框也会关闭。
我是 JFace 的新手,正在测试它的一些组件。
现在我对显示模态 window.
的不同方法有点困惑
例如,我有一个带有按钮的应用程序,我想通过单击此按钮打开一个对话框:
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());
但哪个是正确的或最常见的?区别在哪里?
你应该使用当前对话框的 shell / window 所以:
new MyDialog(getShell());
是你平时用的。
这使新对话框成为当前 window 的子对话框。因此,如果您关闭 window 对话框也会关闭。