岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> J2EE >> mvcwea >> Java正文
在Swing中使用高级的MVC和POJOs
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 22:21:36
的名字必须赋予一个视图组件,这样框架就能在组件和被命名的模型类变量之间复制数据。命名的惯例和其他的用于网络应用程序框架的和Apache BeanUtils库(它通常用于框架的执行)类似。下面是支持的命名格式:
  
  ●简单的: 直接连接到模型域的组件;例如,field1
  
  ●嵌套的:连接到模型内部的JavaBeans域的组件;例如,field1.field2
  
  ●索引的:连接到模型内的数组域的组件;例如myArray[1]
  
  ●映射的:连接到模型内的映射域组件;例如,myHashMap(“foo”)
  
  ●组合的:通过结合符号连接到模型的内部域的组件;例如,field.myArray[1].myHashMap["foo"]
  
  除了模型类的GET和SET方法外,视图类必须为每一个视图组件建立一个GET方法。
  
  下面的例子是为FindCustomerModel建立的视图类。它使用了扩展了基础Swing类的TikeSwing组件(从JLabel到YLabel,JTextField到YTextField,等)。例子的代码和标准的Swing视图很像,只有setMVCNames()方法包含了TikeSwing特有的代码。依照上面讲述的原则,它设定了模型组件的连接。resultTable列通过YColumn对象与customers集合中的POJO域相连。findButton不显示任何从模型得到的数据,但是MVC的名字是为TikeSwing的事件句柄设定的(以后再讲)。
  
  public class FindCustomerView extends YPanel {
  private YLabel idLabel = new YLabel("Id");
  private YLabel nameLabel = new YLabel ("Name");
  private YTextField idField = new YTextField();
  private YTextField nameField = new YTextField();
  private YPanel criteriaPanel = new YPanel();
  private YTable resultTable = new YTable();
  private YButton findButton = new YButton("Find");
  public FindCustomerView () {
  addComponents();
  setMVCNames();
  }
  private void setMVCNames() {
  idField.getYProperty().put(YIComponent.MVC_NAME,"id");
  nameField.getYProperty().put(YIComponent.MVC_NAME,"name");
  resultTable.getYProperty().put(YIComponent.MVC_NAME,"customers");
  findButton.getYProperty().put(YIComponent.MVC_NAME,"findButton");
  YColumn[] columns = {        new YColumn("id"),
  new YColumn("name")};
  resultTable.setColumns(columns);
  }    private void addComponents() {
  this.setLayout(new BorderLayout());
  this.add(criteriaPanel, BorderLayout.NORTH);
  idField.setPreferredSize(new Dimension(100, 19));
  nameField.setPreferredSize(new Dimension(100, 19));
  criteriaPanel.add(idLabel);
  criteriaPanel.add(idField);
  criteriaPanel.add(nameLabel);
  criteriaPanel.add(nameField);
  criteriaPanel.add(findButton);
  this.add(resultTable, BorderLayout.CENTER);
  }
  public YTextField getIdField() {
  return idField;  }
  public YLabel getIdLabel() {
  return idLabel;
  }
  public YTextField getNameField() {
  return nameField;
  }
  public YLabel getNameLabel() {
  return nameLabel;
  }
  public YTable getResultTab

上一页  [1] [2] 


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    传世私服 传奇世界私服 天龙八部私服 bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365