我在Eclipse RCP视图中有一个按钮,该按钮使带有窗体的TitleAreaDialog
弹出窗口。但是,当我单击该按钮时,TitleAreaDialog
会弹出来显示在我的视图后面,而不是在它的前面,以引起用户的注意。
这是我的对话框的声明方式:
public class PopUpEditForm extends TitleAreaDialog {
public PopUpEditForm(Shell parentShell) {
super(parentShell);
//Irrelevant logic
}
//Other functions to populate/create the form
}
这就是所谓的:
public void editFeature(){
Display disp = new Display();
Shell she = new Shell(disp);
PopUpEditForm p = new PopUpEditForm(she);
}
我尝试为用于显示表单的容器以及该容器的组件设置焦点(
.setFocus()
)。我也使用.forceActive()
,但无济于事。快点编辑:解决方案
我使用了错误的外壳:
public void editFeature(){
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
public void run() {
Shell activeShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
PopUpEditForm p = new PopUpEditForm(activeShell);
}
}
最佳答案
我建议您使用:
public void editFeature()
{
Display disp = new Display();
Shell she = new Shell(disp);
PopUpEditForm p = new PopUpEditForm(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
}
理想情况下,对话框应位于窗口上方。