2012-04-20 72 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");