快速业务通道

SWT和JFace, 第2部分: 简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
= createMenuItem(helpMenu, SWT.PUSH, "&About\tCtrl+A",                      null, SWT.CTRL + ''A'', true, "doAbout"); // add popup menu Menu popup = createPopupMenu(shell, body); MenuItem popupMenuItem1 = createMenuItem(popup, SWT.PUSH, "&About",                      null, -1, true, "doAbout"); MenuItem popupMenuItem2 = createMenuItem(popup, SWT.PUSH, "&Noop",                      null, -1, true, "doNothing");

此代码序列创建了以下菜单栏,该菜单栏中包含一些子菜单和一个弹出菜单(参见 图 1、图 2、图 3 和 图 4)。body 值是一个标签控件,包含文本“Sample body”。弹出菜单与这个控件在上下文上存在关联。

图 1. 带有 File 和 Help 菜单的菜单栏

SWT和JFace, 第2部分: 简介 - 编程入门网

图 2. 下拉状态的 File 菜单

SWT和JFace, 第2部分: 简介 - 编程入门网

SWT和JFace, 第2部分: 简介(3)

时间:2011-03-20 IBM Barry Feigenbaum

图 3. 下拉状态的 Help 菜单

SWT和JFace, 第2部分: 简介 - 编程入门网

图 4. 弹出菜单

SWT和JFace, 第2部分: 简介 - 编程入门网

正如您所见,菜单项可以具有加速器(Ctrl+?)和记忆术(给通过 & 标识的字符加下划线),帮助用户使用键盘选择一些项。

我使用一组 helper 方法创建了这些菜单,如清单 2 中所示。最佳实践是创建与这些 helper 方法类似的方法,用这些方法创建重复的 GUI 部分,如菜单。随着时间的推移,您可以向这些 helper 方法添加更多的支持功能,并将它们应用到所有使用点。这些方法还有助于提示您获得所有需要的值。

清单 2. 菜单创建 helper 例程

protected Menu createMenu(Menu parent, boolean enabled) {    Menu m = new Menu(parent);    m.setEnabled(enabled);    return m; } protected Menu createMenu(MenuItem parent, boolean enabled) {    Menu m = new Menu(parent);    m.setEnabled(enabled);    return m; } protected Menu createMenu(Shell parent, int style) {    Menu m = new Menu(parent, style);    return m; } protected Menu createMenu(Shell parent, int style,               MenuItem container, boolean enabled) {    Menu m = createMenu(parent, style);    m.setEnabled(enabled);    container.setMenu(m);    return m; } protected Menu createPopupMenu(Shell shell) {    Menu m = new Menu(shell, SWT.POP_UP);    shell.setMenu(m);    return m; } protected Menu createPopupMenu(Shell shell, Control owner) {    Menu m = createPopupMenu(shell);    owner.setMenu(m);    return m; } protected MenuItem createMenuItem(Menu parent, int style, String text,                   Image icon, int accel, boolean enabled,                   String callback) {    MenuItem mi = new MenuItem(parent, style);    if (text != null) {      mi.setText(text);    }    if (icon != null) {      mi.setImage(icon);    }    if (accel != -1) {      mi.setAccelerator(accel);    }    mi.setEnabled(enabled);    if (callback != null) {      registerCallback(mi, this, callback);    }    return mi; }

SWT和JFace, 第2部分: 简介(4)

时间:2011-03-20 IBM Barry Feigenbaum

清单 3 显示了如何使用 Java 的反射 功能,利用处理菜单项的代码来链接菜单项。此功能创建了一个易于使用的方法,在这个方法中,只需要给应用

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号