当前位置: 代码迷 >> Eclipse >> Eclipse有关问题请问
  详细解决方案

Eclipse有关问题请问

热度:8   发布时间:2016-04-23 13:30:38.0
Eclipse问题请教
[color=#FF0000][/color]package test;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;

public class MenuExample {
private Display display;
private Shell shell;
private Menu main;

public MenuExample() {

display = new Display();
shell = new Shell(display);
paintShell();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new MenuExample();
}

private void paintShell() {
shell.setLayout(new FillLayout());
shell.setSize(300, 200);
shell.setText("菜单");
main = new Menu(shell, SWT.BAR);
paintMain();
shell.setMenu(main); // 将菜单对象设置为Shell窗口的菜单栏

}
// 绘制菜单
private void paintMain() {
// 菜单的第一个菜单项
MenuItem item1 = new MenuItem(main, SWT.CASCADE);
item1.setText("文件(&F)");
// 菜单的第二个菜单项
MenuItem item2 = new MenuItem(main, SWT.CASCADE);
item2.setText("编辑(&E)");
// 菜单的第三个菜单项
MenuItem item3 = new MenuItem(main, SWT.CASCADE);
item3.setText("窗口(&W)");
// 菜单的第四个菜单项
MenuItem item4 = new MenuItem(main, SWT.CASCADE);
item4.setText("帮助(&H)");

// 创建菜单
Menu fileMenu = new Menu(shell, SWT.DROP_DOWN); // 下拉式菜单
// 添加“新建“菜单
new MenuItem(fileMenu, SWT.PUSH).setText("新建(&N)ALT+SHIFT+N");
// 添加"打开"菜单项
new MenuItem(fileMenu, SWT.PUSH).setText("打开(&O)ALT+SHIFT+O");
// 添加分割线菜单
new MenuItem(fileMenu, SWT.SEPARATOR);
// 添加保存菜单
new MenuItem(fileMenu, SWT.PUSH).setText("保存(&S)ALT+SHIFT+S");
// 添加另存为菜单项
new MenuItem(fileMenu, SWT.PUSH).setText("另存为(&A)ALT+SHIFT+A");
// 添加分割线菜单项
new MenuItem(fileMenu, SWT.SEPARATOR);
// 添加推出菜单项
new MenuItem(fileMenu, SWT.PUSH).setText("退出(&E)");
// 将此菜单放置在主菜单的第一个菜单项上
item2.setMenu(fileMenu);

}
}
出现的错误是下列情况:
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 test.MenuExample.paintShell(MenuExample.java:43)
at test.MenuExample.<init>(MenuExample.java:19)
at test.MenuExample.main(MenuExample.java:34)
补充部分,虽然按照第一个提示改了,但是菜单就出不来了求救啊[color=#FF0000][/color]

------解决方案--------------------
将这一句shell.setMenu(main);改为shell.setMenuBar(main);
  相关解决方案