Eclipse问题请教

楼兰公子 2012-05-15 01:54:59
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)
补充部分,虽然按照第一个提示改了,但是菜单就出不来了求救啊
...全文
71 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
楼兰公子 2012-05-16
非常感谢大师帮忙,您好细心啊,看来我要做的还很多啊
回复
gongli109 2012-05-15
将这一句shell.setMenu(main);改为shell.setMenuBar(main);
回复
发帖
Eclipse
创建于2007-09-28

5.8w+

社区成员

Java Eclipse
申请成为版主
帖子事件
创建了帖子
2012-05-15 01:54
社区公告
暂无公告