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

原创 2003年03月14日 09:12:00

下一代的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  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);
    //监听切换动作
  }
  public void (String text) {
    this.input.setText(text); //设定文本框文字
    //设定下拉框选定值
    this.select.getModel().setSelectedItem(text);
  }
  public String () {
    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允许编写自己的控件来实现特殊需求, 后面的章节会有介绍.

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

可编辑的下拉列表我们知道HTML页面上的下拉列表是不可编辑的. Echo可以让我们轻松的变相实现. 先看看这个ComboBox怎么用://下拉列表数据String[] member = new Str...
  • ShawnNee
  • ShawnNee
  • 2008年06月12日 17:38
  • 364

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

编写自己的控件羡慕EchoPoint的控件吗? 别担心, 你一样可以做. 写控件可以分两种方法: 搭积木和造积木.A: 搭积木在教程(5)中, 我们实现了可编辑的下拉菜单. 其实不过是一些已有控件的组...
  • ShawnNee
  • ShawnNee
  • 2008年06月12日 17:41
  • 224

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

下一代的B/S开发框架--Echo 教程(4) 模式窗口的实现熟悉浏览器的人都知道, 浏览器上很难实现模式窗口, 就是那种一直在最上面的子窗口并且能禁止对父窗口的操作. 在B/S编程中碰到这种问题一般...
  • steeven
  • steeven
  • 2003年03月13日 09:02
  • 1571

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

原理先看看Echo的效果: 比如在Echo的DEMO中, 我们点击"Disaplay Help"的复选框, 提示信息不见了, 但是整个页面却没有任何变化! 包括你选择的下拉列表和输入框中随意敲的文字,...
  • ShawnNee
  • ShawnNee
  • 2008年06月12日 16:53
  • 273

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

下一代的B/S开发框架--Echo 教程(6) HTML模板JSF和Tapestry是都是基于模板的Java WEB框架, 但是在使用前要学习它们的特定语法规则. Echo本身没有提供HTML模板, ...
  • steeven
  • steeven
  • 2003年03月18日 08:53
  • 1396

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

下一代的B/S开发框架--Echo 教程(1) 独乐乐不如同乐乐, 每当有点发现我总喜欢写下来同大家分享, 也希望得到指点和帮助. 写教程是个辛苦活, 但是这里有个小小的阴谋, 等大家咬钩了再说 :)...
  • steeven
  • steeven
  • 2003年03月18日 08:56
  • 1715

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

下一代的B/S开发框架--Echo 教程(9) 优点/缺点这个话题本来放倒本教程的开头, 但是我想让各位从前面的的例子中做出自己的评价, 看看我们的结论是否一致:优点:用OO的方法开发B/S程序, 完...
  • steeven
  • steeven
  • 2003年03月25日 09:33
  • 1720

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

模式窗口的实现熟悉浏览器的人都知道, 浏览器上很难实现模式窗口, 就是那种一直在最上面的子窗口并且能禁止对父窗口的操作. 在B/S编程中碰到这种问题一般都会返回一个新页面, 然后用链接回到原来的页面....
  • ShawnNee
  • ShawnNee
  • 2008年06月12日 17:36
  • 265

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

下一代的B/S开发框架--Echo 教程(8) 数据绑定喜欢偷懒的人最喜欢数据绑定. 很多桌面开发工具都提供了控件的数据绑定功能, 很遗憾, Echo还没有. 在我手头的项目中, 一个表有上百个字段,...
  • steeven
  • steeven
  • 2003年03月20日 09:22
  • 2140

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

下一代的B/S开发框架--Echo 教程(7) 编写自己的控件羡慕EchoPoint的控件吗? 别担心, 你一样可以做. 写控件可以分两种方法: 搭积木和造积木.A: 搭积木在教程(5)中, 我们实现...
  • steeven
  • steeven
  • 2003年03月19日 09:12
  • 1501
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:下一代的B/S开发框架--Echo 教程(5)
举报原因:
原因补充:

(最多只允许输入30个字)