2012-04-20 2 views
0

제목으로 말하면, openMessageBox 인스턴스를 호출 할 때 아무 일도 일어나지 않습니다. 우분투 11.10에 내가 RCP에 대한 이클립스 인디고 3.7.2 및 RAP 개발자를 사용하고Eclipse RCP MessageBox.open이 우분투 11.10에서 작동하지 않습니다.

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

: 일부 작업이 날이 메시지 상자를 열 수 있도록이 대화 상자에서

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

: 이 코드입니다 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

아마도 자바를 사용한다고해도 실행 구성 및 사용중인 언어에 대한 정보를 더 많이 포함 할 수 있습니다. 또한 전체 코드, 단편만을로드 할 필요가 없습니다. 코드가 500 줄 이하로 비교적 짧으면 코드 패드 등으로 게시하십시오.

그러나 이것이 자바 프로젝트 인 경우 이제 메시지 상자가 표시됩니다. 여기를보세요 : http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

+0

감사합니다 대화 상자. 네, 제 프로젝트는 자바 프로젝트입니다. 스윙은 완벽하게 작동하지만 SWT 라이브러리를 사용해야합니다. – Alberto

0

를 사용하여 새의 standart 메시지 답장을

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