SWT里的Menu编程

新建一个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) {
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值