我在命令行应用程序
中创建如下WizardDialog
final Shell shell = new Shell(display);
Wizard wiz = new ImportWizard();
WizardDialog dialog = new WizardDialog(shell, wiz);
dialog.create();
dialog.open();
向导对话框确实显示。但它没有出现在任务栏中。 我也试过
shell.setVisible(true);
dialog.open();
这使得Shell显示在任务栏中,但是在向导后面可以看到shell窗口。
我如何解决这个问题?
答案 0 :(得分:2)
我能够使用以下代码段解决此问题
Wizard wiz = new ImportWizard();
WizardDialog dialog = new WizardDialog(null, wiz);
dialog.create();
dialog.open();
在null
构造函数中将Shell
作为WizardDialog
传递。
答案 1 :(得分:0)
我可能会认为,这种行为的原因是WizardDialog
类只有构造函数提供Shell
,最后(在Dialog
类中)使用SameShellProvider
作为shell提供者。你需要从某些东西继承,你可以传递自己的IShellProvider
,例如TrayDialog
(或其他一些合适的类)。