Java 使用Viewpart中的JFace自定义Eclipse RAP对话框

Java 使用Viewpart中的JFace自定义Eclipse RAP对话框,java,dialog,jface,Java,Dialog,Jface,我有一个类“View”,它扩展了ViewPart。 在我的课堂上,我想展示一个包含两个标签的对话框 首先,我使用了“InputDialog”,如下所示: Composite composite = new Composite(top, SWT.NONE); Label label= new Label(tmpComposite, SWT.NONE); label.setText(""); InputDialog dlg; dlg = ne

我有一个类“View”,它扩展了ViewPart。 在我的课堂上,我想展示一个包含两个标签的对话框

首先,我使用了“InputDialog”,如下所示:

        Composite composite = new Composite(top, SWT.NONE);
    Label label= new Label(tmpComposite, SWT.NONE);
    label.setText("");

    InputDialog dlg;
        dlg = new InputDialog(Display.getCurrent().getActiveShell(),
                "Title", "Some Text", label.getText(), insertValidator());
    if (dlg.open() == Window.OK) {
        //Do sth.                   
    }
这很有效。但现在我有两个标签。我怎样才能实现它? 我找到了一些解决方案,但没有一个能在ViewPart或EclipseRCP中工作

谢谢你的帮助


顺便问一下,如果您的解决方案是从我的“视图”调用java类,那么我如何回到“视图”以及如何查看我的新对话框?已尝试,但不起作用。

您需要通过扩展org.eclipse.jface.dialogs.dialog来创建一个自定义对话框:

public class MyDialog extends Dialog 
{
  public MyDialog(Shell parentShell)
  {
    super(parentShell);
  }

  @Override
  protected Control createDialogArea(Composite parent) 
  {
    Composite container = (Composite)super.createDialogArea(parent);

    // Add your controls here

    return container;
  }
}
您可以用类似于
InputDialog

MyDialog dialog = new MyDialog(shell);
dialog.open();
请查看更多详细信息