SWT 객체 "메뉴"를 사용하여 메뉴를 만들려고합니다. 코드의 라인은 오히려 간단하다 :자바 SWT 예외 : "java.lang.IllegalArgumentException": 메뉴가 POP_UP이 아님
Exception in thread "main" java.lang.IllegalArgumentException: Menu is not a POP_UP
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Widget.error(Unknown Source)
at org.eclipse.swt.widgets.Control.setMenu(Unknown Source)
at labo.Laboratory.createShell(Laboratory.java:25)
at labo.Laboratory.main(Laboratory.java:15)
관여하는 것으로 보인다 SWT 코드는 "면 SET MENU"방법의 하나입니다
public static void main(String[] args) {
createShell();
}
private static void createShell() {
Display display = new Display();
Shell shell = new Shell(display, SWT.SHELL_TRIM);
Menu menu = new Menu(shell, SWT.BAR);
shell.setMenu(menu);
shell.open();
while (! shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
런타임에서 나는 다음과 같은 예외를 얻을 :
public void setMenu (Menu menu) {
checkWidget();
if (menu != null) {
if (menu.isDisposed()) error(SWT.ERROR_INVALID_ARGUMENT);
if ((menu.style & SWT.POP_UP) == 0) {
error (SWT.ERROR_MENU_NOT_POP_UP);
}
if (menu.parent != menuShell()) {
error (SWT.ERROR_INVALID_PARENT);
}
}
this.menu = menu;
}
Obvisously 나는 C의 다음 행으로 이동 ode :
if ((menu.style & SWT.POP_UP) == 0) {
error (SWT.ERROR_MENU_NOT_POP_UP);
}
하지만 이유를 이해할 수 없습니다. 실행하려고 시도하는 코드는 어디에서나 유효한 예제로 제공되지만 나에게는 적합하지 않습니다.
Java EE IDE와 Java 8 JRE를 사용하고 있습니다. SWT 라이브러리는 eclipse 네온에서 제공하는 라이브러리입니다. 내가 사용하는 OS는 Windows 7입니다.
다른 컴퓨터 및 구성에서이 오류를 재연했지만 흥미롭게도 다른 사람이 직면 한 것 같지 않습니다.
그게 전부입니다. setMenuBar 대신 setMenu 메서드를 선택했습니다. – burgerLove
그것은 내 바보 같은 실수였습니다. 많은 도움을 주셔서 감사합니다. :-) – burgerLove