没有任何按钮和没有模态的swt rcp消息对话框

时间:2015-11-18 09:19:55

标签: dialog swt message rcp

我需要你的帮助,在我的swt应用程序中,我需要在加载一些jfreechart图表时显示一条简单的消息。简单地说,我在图表生成方法的开头放了一个shell,然后在方法结束时关闭那个shell。我知道这不是最好的解决方案,但我需要一个简单的方法来做到这一点。问题是shell是模态的,它会关闭之前运行的其他一些作业,所以我需要弹出一个NO MODAL。我尝试使用消息框和对话框,但所有按钮都有按钮,我只需要弹出一个没有任何按钮,只有一个标签和一个图像。 谢谢!

我把相关代码:

在生成图表方法中我调用了shell create方法:

    Display display = PlatformUI.createDisplay();
    Shell shell = new Shell(display,SWT.BACKGROUND);
    generateMessageDialog(display,shell);

这是创建shell的方法:

    Monitor primary = display.getPrimaryMonitor ();
    Rectangle bounds = primary.getBounds ();
    shell.setSize(455, 295);
    Rectangle rect = shell.getBounds ();
    int x = bounds.x + (bounds.width - rect.width) / 2;
    int y = bounds.y + (bounds.height - rect.height) / 2;
    shell.setLocation (x, y);
    shell.setLayout(new FormLayout());
    shell.setText("Information");
    Label label = new Label(shell, SWT.NONE);
    ImageDescriptor id =      Activator.getImageDescriptor("icons/loading4_modificado.gif");
    Image image = id.createImage();
    label.setImage(image);

    Label label2=new Label(shell, SWT.NONE);
    label2.setText("Generating chart. Please, wait...");

    FormData label1FD = new FormData();
    label1FD.top = new FormAttachment(0, 120);
    label1FD.left = new FormAttachment(0, 90);
    label.setLayoutData(label1FD);

    FormData label2FD = new FormData();
    label2FD.top = new FormAttachment(0, 130);
    label2FD.left = new FormAttachment(0, 160);
    label2.setLayoutData(label2FD);
    label2.setFont(new org.eclipse.swt.graphics.Font(null,"Arial", Font.PLAIN, 10));

    shell.open();
    shell.layout();

2 个答案:

答案 0 :(得分:0)

使用如下样式创建Shell:

UPDATE t SET ColumnY = (CASE WHEN ColumnX = 0 THEN 'Full' ELSE 'Vacant' END)

为您提供“工具提示”样式的外壳。

答案 1 :(得分:0)

这听起来像是你要求的东西有点像闪屏。

您可能想要的关键风格是SWT.ON_TOP,它将窗口置于最顶层。

此处SWT Snippets <{3}}中有一个完整的启动画面示例:Snippet104