快速业务通道

Java实现数据驱动的命令用户界面 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

可以看出,只需简单使用两重循环,就可为应用的所有命令在界面上生成命令导航树。

下面说明如何为所有命令,实现一种通用一致的参数输入方式.根据我们的命令结构组织方式,如果用户选择了某一Cmd节点,则其所需的参数在该Cmd对象的cmdFields数组中描述。对每一个参数,在界面上表现为一Label-Component对形式。Laber用于标识参数,Component组件供用户输入参数的实际值。每个参数在界面上占一行,按GridBagLayout布局加入到参数面板中.这部分代码示例如下:

for (int i = 0; i < cmdFields.length; i++){ label = new JLabel(cmdFields[i].name); …/*根据参数内容设置label的其他属性,如label的提示信息tip等*/ gbc.anchor = GridBagConstraints.EAST; gbc.gridwidth = GridBagConstraints.RELATIVE; paraPanel.add( label,gbc); gbc.anchor = GridBagConstraints.WEST; gbc.gridwidth = GridBagConstraints.REMAINDER; switch(cmdFields[i].type){ case 0: component = new JTextField(16) /*不妨设参数类型为0时对应JTextField组件*/ …/*根据参数内容添加对组件的控制*/ paraPanel.add( component,gbc); break; case 1: component = new JComboBox() /*假设参数类型为1时对应 JComboBox组件*/ …/*根据参数内容添加对组件的控制*/ paraPanel.add( component,gbc); break; … … case n: …/* 添加类型为n时的组件*/ default: …/*参数数据类型未定义*/ } }

参数类型上的差异,在界面上表现为所添加的Component种类不同。我们只需为应用的每一种数据类型确定一种Component供用户输入.多数类型,在JTextField 组件下就能完成参数输入,输入的同时可以根据CmdField对象对其输入范围作出限定.我们的方案在设计时已经考虑到参数取值是枚举的情况,对枚举类型参数,其可能的取值项被添加到一个JList或JComboBox组件中。用户也可以为自己的数据类型定制一个专用的输入组件。一个应用程序到底设有哪些数据类型,可视具体应用情况而定.简单的情况提供字串值和二进制值两种类型就可以完成所有输入。更一般的情况可包括常用的整数类型、浮点类型、时间类型等。我们的方案不直接支持复杂的构造类型,一个构造类型的参数可视为由其包含的多个基本类型参数组成。

4 结束语

数据驱动的命令界面生成方案充分考虑了命令间的相似性,以一致的方式生成所有命令的界面元素,具有更好的伸缩性和扩展性.本方案非常有利于大规模命令的实现并能方便地适应命令的修改变化。本方案同时也有利于用户界面和业务逻辑分离.命令可以由对命令功能含义非常熟悉的业务人员来定义,而界面设计人员可以在对命令毫无所知的情况下根据业务人员提供的命令描述在界面上生成所需要的命令界面元素。

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