Eclipse RCP MessageBox.open不适用于Ubuntu 11.10

时间:2012-04-20 08:49:04

标签: eclipse ubuntu gtk eclipse-rcp messagebox

正如标题所说,当我调用open实例的方法MessageBox时,没有任何反应。 这是代码:

Shell dialog = new Shell(SWT.TITLE | SWT.BORDER | SWT.APPLICATION_MODAL | SWT.ON_TOP);
shell.open();

在此对话框中,我可以通过一些操作打开此消息框:

MessageBox box = new MessageBox(dialog, SWT.ICON_WARNING | SWT.OK);
box.setText("Warning");
box.setMessage(label);
box.open();

我正在使用Eclipse Indigo 3.7.2 for RCP和RAP Developers on Ubuntu 11.10 with Unity(Ubuntu2D)和Compiz 0.9.6 with OpenJDK 1.7.0_147。 Herehere是解决此问题的一些提示,(通过设置环境变量GDK_NATIVE_WINDOWS来修复),但没有任何效果。

3 个答案:

答案 0 :(得分:0)

也许你可以包含一些关于你的运行配置和你正在使用的语言的更多信息,虽然我假设java ....此外,你没有费心加载整个代码,只加载一个片段。如果代码相对较短,500行或更少,请在键盘或其他东西上发布。

但如果这是一个java项目,现在就是你如何显示一个消息框。在这看看: http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

答案 1 :(得分:0)

好的,我解决了。出于某些原因,在Linux下,消息框在 下使用标志SWT.ON_TOP创建的组件(在Windows下,消息框总是在任何组件上方)。我刚从父对话框中删除SWT.ON_TOP,一切正常。

答案 2 :(得分:0)

使用新的标准消息对话框

org.eclipse.jface.dialogs.MessageDialog
MessageDialog.openConfirm(shell, "Confirm", "Please confirm");
MessageDialog.openError(shell, "Error", "Error occured");
MessageDialog.openInformation(shell, "Info", "Info for you");
MessageDialog.openQuestion(shell, "Question", "Really, really?");
MessageDialog.openWarning(shell, "Warning", "I warn you");