SWT里的Menu编程

类别:Java 点击:0 评论:0 推荐:
新建一个menu bar要以下面的格式开头:
Menu menu = new Menu(shell, SWT.BAR);
//注意Menu的第一个参数一般是shell!
//style必须是SWT.BAR
shell.setMenuBar(menu);

下面加一个item到menu bar:
MenuItem file = new MenuItem(menu, SWT.CASCADE);
//style必须是SWT.CASCADE,否则就不能跟file加drop-down menu
file.setText("file");

现在给file加个menu:
Menu filemenu = new Menu(shell, SWT.DROP_DOWN);
//style必须是SWT.DROP_DOWN
file.setMenu(filemenu);

最后,可以在filemenu上加MenuItem:
MenuItem actionItem = new MenuItem(filemenu, SWT.PUSH);
actionItem.setText("Action");

这样就在File menu上建立一个最简单的可以选择的menu item.
如果要加listener,这样:
actionItem.addListener(SWT.Selection, new Listener() {
    public void handleEvent(Event e) {
        System.out.println("Action Performed");
    }
});

/////////////////////////////////////////////////////////////////////////////

新建一个MenuItem的语句如下:
MenuItem actionItem = new MenuItem(filemenu, SWT.PUSH);
我们一般会建立SWT.PUSH的MenuItem,对于style还有其它的选择:
CHECK,RADIO,SEPARATOR和CASCADE.
SWT.CHECK和SWT.RADIO的用法和SWT.PUSH差不多

对于SWT.CASCADE,能用它在MenuItem上在加上多个MenuItem.
MenuItem cascadeItem = new MenuItem(filemenu, SWT.CASCADE);
cascadeItem.setText("Cascade");
Menu submenu = new Menu(shell, SWT.DROP_DOWN);
cascadeItem.se
tMenu(submenu);

接着就可以在它上面加MenuItem:
final MenuItem subactionItem = new MenuItem(submenu, SWT.PUSH);
subactionItem.setText("&SubAction\tCtrl+s");
//S前有个&符号,这是简化的设置快捷键的方法
subactionItem.setAccelerator(SWT.CTRL+'S');
//设置键盘控制.

有许多监听器,注意它们各自的用法:
MenuListener:
作用对象就是Menu(注意不同于MenuItem).
可以侦察到Menu是打开了或者关闭了.
MenuListener() {
    public void menuShown(MenuEvent e) {
    }
    public void menuHidden(MenuEvent e) {
    }
}
ArmListener:
当一个menuitem被鼠标或键盘移动到它但并没有选择的时候,
产生ArmEvent事件
ArmListener() {
    public void widgetArmed(ArmEvent e) {
    }
}
HelpListener:
如果按F1/Help键,HelpListener被激发.
HelpListener() {
    public void helpRequested(HelpEvent e) {
    }
}

本文地址:http://com.8s8s.com/it/it10486.htm