我需要你的帮助,在我的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();
答案 0 :(得分:0)
使用如下样式创建Shell:
UPDATE t SET ColumnY = (CASE WHEN ColumnX = 0 THEN 'Full' ELSE 'Vacant' END)
为您提供“工具提示”样式的外壳。
答案 1 :(得分:0)