下一代的B/S开发框架--Echo 教程(5) (转)

下一代的B/S开发框架--Echo 教程(5) (转)[@more@]

下一代的B/S开发框架--Echo 教程(5)

可编辑的下拉列表

我们知道HTML页面上的下拉列表是不可编辑的. Echo可以让我们轻松的变相实现. 先看看这个ComboBox怎么用:

//下拉列表数据
String[] member = new String[]{"steeven","stella"};
selectFieldModel model = new DefaultSelectFieldModel(member);
//可劲重用吧:
ComboBox combo = new ComboBox("default text",selectFieldModel);

简单吗? 再来看看具体实现:

/************ComboBox.Java************ * 可编辑的下拉列表 */ import nextapp.echo.*; import nextapp.echo.event.*; public class ComboBox extends Panel implements ActionListener { private TextField input = new TextField(); //输入框 private SelectField select = new SelectField(); //下拉框 private CheckBox check = new CheckBox(); //切换按钮 public ComboBox(String text, SelectFieldModel model) { select.setModel(model); //设定下拉列表的内容 setText(text); //设定缺省文字 select.setVisible(false); //缺省不可见 add(input); add(select); add(check); check.addActionListener(this); //监听切换动作 } public void setText(String text) { this.input.setText(text); //设定文本框文字 //设定下拉框选定值 this.select.getModel().setSelectedItem(text); } public String getText() { return check.isSelected()?select.getSelectedItem().toString():input.getText(); } public void actionPerformed(ActionEvent e) { input.setVisible(!check.isSelected()); select.setVisible(check.isSelected()); //同步数据 if (check.isSelected()) select.getModel().setSelectedItem(input.getText()); else input.setText(select.getSelectedItem().toString()); } }

 
 

原理很简单:

  1. 同时构造输入框和下拉框, 根据旁边复选框的状态交替出现.
  2. 在切换时同步数据, 根据输入框的值选中下拉框中的对应值, 或者把下拉框中的选定值复制到输入框.
  3. 提供类似TextField的getText()和getText()方法.

是不是完全桌面编程的风格? 没有写任何HTML和脚本.

这样实现的ComboBox需要同服务器交互, 在速度上稍显不足. 这样的交互完全可以用脚本在浏览器上高效完成. 别担心, Echo允许编写自己的控件来实现特殊需求, 后面的章节会有介绍.


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-992934/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-992934/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值