快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
程序类添加一个 public 方法(比如 doExit、doAbout 或 doNothing),就可以处理菜单命令。

清单 3. 处理菜单命令的 Callback 例程

protected void registerCallback(final MenuItem mi,                  final Object handler,                  final String handlerName) {    mi.addSelectionListener(new SelectionAdapter() {      public void widgetSelected(SelectionEvent e) {        try {          Method m = handler.getClass().getMethod(handlerName, null);          m.invoke(handler, null);        }        catch (Exception ex) {          ex.printStackTrace();        }      }    }); }

我在本系列的 第 1 部分 中描述了使用 SelectionListener 的细节。

请注意,菜单项(以及稍后讨论的列表、表、和树控件中的项)只支持字符串值;在添加其他类型的值之前,这些值将被转换成字符串值。

组合框和列表

通常,您希望 GUI 的用户从预先确定的值列表中进行选择。列表 控件是做到这一点的最简单的方法。列表显示了一组预先定义的、用户可以从中进行选择的字符串值。列表通常需要大量的屏幕实际信息(real estate)。如果您想节省空间,那么可以使用组合框 控件,组合框允许在需要的时候让列表处于下拉状态。组合框还可以有选择地允许用户在类似文本的字段中输入所需要的值。

必须将组合框定义为以下两种互斥样式之一:

SIMPLE 显示值的列表。

DROP_DOWN 使值的列表处于下拉状态。

组合框支持一种可选样式:

READ_ONLY 防止用户编辑此组合框的文本字段。

我所讨论的所有控件(列表、组合框、表和树)都支持以下两种互斥样式之一:

SINGLE 用户只能选择一个项。

MULTI 用户可以选择多个项。

这些控件还支持其他样式:

H_SCROLL 在需要时显示了一个水平滚动的条。

V_SCROLL 在需要时显示了一个垂直滚动的条。

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

时间:2011-03-20 IBM Barry Feigenbaum

创建组合框和列表相当容易。创建这些控件和添加所需要的字符串值,如清单 4 所示。

清单 4. 使用 FormLayout 创建一个组合框和一个列

import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.*; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*;   : setLayout(new FormLayout()); String[] data = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5",           "Item 6", "Item 7", "Item 8", "Item 9", "Item 10" }; Combo c = createCombo(this, data); configureLayout(c, new FormAttachment(0, 5), new FormAttachment(0, 5),           new FormAttachment(100, -5), null); List l = createList(this, data); configureLayout(l, new FormAttachment(0, 5), new FormAttachment(c, 5),           new FormAttachment(100, -5), new FormAttachment(100, -5)); // Create a Combo protected Combo createCombo(Composite parent, String[] data) {    Combo combo = new Combo(parent,                SWT.DROP_DOWN | SWT.MULTI |                SWT.V_SCROLL | SWT.H_SCROLL);    combo.addSelectionListener(new SelectionListener() {      :    });    setComboContents(data);    return combo; } // Create a List protected List createList(Composite parent, String[] data) {  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号