快速业务通道

用JavaFX写用户界面控制器 - 编程入门网

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

用JavaFX写用户界面控制器

时间:2011-09-09

在本文中,我们关心的是BlueBill Mobile类,尤其是管理所有Search Species屏幕之后逻辑的控制器;因此本文有助于你了解JavaFX的语言性能。而且我们会举出一些实例来阐述要介绍的技巧和典型JavaFX结构的陷阱。

笔者想应用程序中嵌入了更新的屏播。视频播放要求使用QucikTime。

这里的概念是在搜索框中键入查询时,英文函数或科学名称函数会对清单过滤。此外,当这些生效的时候,BlueBill Mobile还可以执行自动完成输入。例如,如果在键入查询的时候你仔细查看视频会发现只输入了"a-r-d-a-c"来选择"Ardea Cinerea";或用于"Pied Avocet"的"p-i-e-< space>-a"。BlueBill Mobile 会自动会剩余部分进行补充因为在某些情况下,不存在其他选择。这是用来改善移动设备性能的重要功能:你可以以较少的输入达到相同目的。

按照MVC模式,就非常有必要在单独的控制器中概括这种模式;此外,也很容易对这种模式进行单元测试。

首先,让我们看一下代表了分类群的模式类:

     package it.tidalwave.bluebillmfx.taxon.model; 
  import java.lang.Comparable;
  public class Taxon extends Comparable
  {
  public-read protected var displayName : String;
  public-read protected var scientificName : String;
  public-read protected var id : String;
  override function compareTo (other : Object)
  {
  return displayName.compareTo((other as Taxon).displayName);
  }
  override function toString()
  {
  return "{displayName} ({scientificName}) ({id})"
  }
  }
  public function displayNameGetter (taxon : Taxon): String
  {
  return taxon.displayName;
  }
  public function scientificNameGetter (taxon : Taxon): String
  {
  return taxon.scientificName;
  }
  public def namePropertyGetters = [displayNameGetter, scientificNameGetter];

用JavaFX写用户界面控制器(2)

时间:2011-09-09

类托架外面定义的函数和变量相当于Java静态分析。

这里我们省略了一些不相关的实际项目。基本上,该模式暴露了三个属性,其中有意思的两个分别是displayName和scientificName。我们也可以定义两个函数来处理这两个问题,我们会把这些函数放在namePropertyGetters序列中。

      package it.tidalwave.bluebillmfx.taxon.controller; 
  import it.tidalwave.bluebillmfx.taxon.model.Taxon;
  public class TaxonSearchController
  {
  public var selectedTaxon = bind if (selectedTaxonIndex < 0) then null else filteredTaxons[selectedTaxonIndex];
  public var selectedTaxonIndex : Integer = -1;
  public var taxons: Taxon[];
  public var filter = "" on replace
  {
  filteredTaxons = taxons[taxon | matches(taxon, filter)];
  update();
  }
  public-read var autoCompleted = "";
  public var filteredTaxons: Taxon[];
  protected function matches (taxon : Taxon, string: String) : Boolean
  {
  if (string == "")
  {
  return true;
  }
  for (propertyGetter in Taxon.namePropertyGetters)
  {
  if (propertyGetter(taxon).toLowerCase().startsWith(filter.toLowerCase()))
  {
  return true;
  }
  }
  return false;
  }
  protected function update(): Void
  {
 

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