2012-04-20 69 views
0

正如标题所示,当我调用MessageBox实例的方法open时,没有任何反应。 这是代码:Eclipse RCP MessageBox.open在Ubuntu 11.10中不起作用

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 RCP靛蓝3.7.2和RAP开发人员在Ubuntu 11.10与Unity(Ubuntu2D)和Compiz 0.9.6,OpenJDK 1.7.0_147。 Herehere是解决此问题的一些提示(通过设置环境变量GDK_NATIVE_WINDOWS来解决),但没有任何效果。

回答

0

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

0

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

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

+0

感谢您的答复。是的,我的项目是一个Java项目。 Swing完美工作,但我必须使用SWT库。 – Alberto 2012-04-20 09:07:47

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");