45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:B/S开发框架--Echo教程介绍

B/S开发框架--Echo教程介绍

2016-08-31 12:29:26 来源:www.45fan.com 【

B/S开发框架--Echo教程介绍

下一代的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允许编写自己的控件来实现特殊需求, 后面的章节会有介绍.

 

本文地址:http://www.45fan.com/dnjc/70277.html
Tags: 开发 框架 下一代
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部