原文:Learn about JavaFX's APIs for Reading RSS and Atom Newsfeeds
作者:Jeff Friesen
出处:http://today.java.net/article/2009/11/30/learn-about-javafxs-apis-reading-rss-and-atom-newsfeeds
JavaFX 1.2引入了许多有意思的API,其中包括了用于读取RSS和Atom新闻推送(newfeed)的API。如果你还未曾使用过这些API来的话,你将会发现它们大大地简化了把新闻推送阅读器整合到JavaFX应用中这一任务。
本文向你介绍了RSS和Atom的API,首先研究它们的共同基础,然后浏览每个API的关键类,最后,通过探讨FeedTask类对新闻推送轮询的实现来深入了解这些API是如何工作的。
共同的基础
RSS和Atom的API分别是以抽象类javafx.async.Task为根源的共同基础框架上的两个分支,该类使得启动、停止和跟踪运行在后台线程中的活动(任务)成为可能。
Task提供onStart和onDone变量来标识在任务启动和终止时被调用的函数,其他的变量则报告任务的进展情况和处置情况(成功或者失败),该类还提供了抽象的start():Void和stop():Void函数来启动和终止任务的执行。
抽象类javafx.data.feed.FeedTask扩展了Task,除了继承Task的变量之外,还重写了它的start()和stop()函数,FeedTask提供了以下的函数和变量:
poll(): Void:轮询新闻订阅的location以获得更新的内容,提取和解析内容,然后交付给应用。
update(): Void:轮询新闻订阅的location,提取和解析所有内容,然后交付给应用。
headers(类型为javafx.io.http.HttpHeader[])标识了一系列每次轮询新闻推送时发送给location的HTTP请求标头,该变量默认为null。
interval(类型为javafx.lang.Duration)指定了在再一次轮询新闻推送获得更新之前必须要间隔的时间长度,需要为该变量指明一个正数值,缺省值为0.0。(我不知道如果选择一个诸如60秒之类的正值作为轮询的默认值是不是会更好一些,也许可以用0.0来表明不需要轮询)
location(类型为String)指定了新闻推送的地址,该变量的缺省值为空串(””)。
onException(类型为function(:Exception):Void)标识了当前轮询期间发生异常时被调用的函数,该变量的缺省值为null。
onForeignEvent(类型为function(:javafx.data.pull.Event):Void)标识了被调用来处理扩展元素的函数,这些新闻推送元素的命名空间URI不是Atom或者RSS,例如,某个给定的Atom新闻推送的推送元素的开始标记是这样指定的<feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">,解析随后的<opensearch:totalResults>1911</opensearch:totalResults>元素得出三个陌生的项目(对应开始标记、文本内容和终止标记),因为totalResults的命名空间是http://a9.com/-/spec/opensearch/1.1/(以opensearch:前缀的方式指定)而不是http://www.w3.org/2005/Atom。该变量的缺省值为null。
共同基础框架也根植于抽象类javafx.data.feed.Base之上,这是描述了各种新闻推送元素的RSS和Atom类的基类,RSS的RSS和Atom的Feed这些顶层元素类是Base子类的例子。
Base提供了一个namespaces变量(类型为javafx.data.Pair[]),该变量包含了对元素有效的命名空间的定义,每个Pair的名称部分指明了命名空间前缀,值部分指定了命名空间URI。
Base还提供了一个parent变量(类型为Base),该变量用来表示父(把其包含之内的)元素,例如,Atom的Entry元素类的parent变量指向包含它的Feed实例,如果没有父元素(像Feed这种情况)的话,则该变量的值为null。
最后要说的是,Base提供了几个函数,在需要创建自定义的推送解析器的时候,它们会派上用场,因为这项工作超出了本文的范围,你可以参考Rakesh Menon的这篇博客文章Custom Feed Parsers以了解更多的内容和例子。
[译文]了解用于读取RSS和Atom新闻推送的JavaFX API(二)
分享到:
相关推荐
当前的JavaFX包括JavaFX脚本和JavaFX Mobile(一种运营于行动装置的操作系统),今后JavaFX将包括更多的产品。JavaFX Script编程语言(以下称为JavaFX)是一种declarative, statically typed(声明性的、静态类型)...
JavaFX api文档 chm格式
JavaFX API Documentation
用于JavaFX学习的帮助文档JavaFX api,
JAVA 8 官网API ,JavaFX 2.0 API官网 整合 生成CHM文件。
JavaFX 2.2是Oracle公司推出的一个强大的Java图形用户界面(GUI)工具包,用于构建桌面、移动和Web应用程序。这个API文档是开发者在使用JavaFX 2.2进行开发时的重要参考资料,包含了所有类、接口、枚举和注解的详细...
JavaFX 包含了一些列图形和媒体包,允许程序员设计、创建、测试、调试、和部署富客户端应用并且保持跨平台的操作一致性。 JavaFX 应用程序由 Java API 编写,可以调用任何 Java API 包。例如,可以调用 Java API ...
JavaFX是Java平台上的一个强大的用户界面工具包,用于创建桌面、移动和Web的应用程序。它提供了丰富的图形和媒体功能,以及对2D和3D图形的支持,使得开发者能够构建美观且交互性强的用户界面。JavaFX API是这套工具...
本文将基于“JavaFX API (PDF版)”这一资源,深入解析其核心知识点,帮助读者全面理解JavaFX的核心组件、类库以及它们的应用场景。 ### JavaFX API概述 JavaFX API是JavaFX平台的核心组成部分,它为开发者提供了一...
javafx8api文档
JavaFx api帮助文档
Java 8 和 JavaFX API 是两个重要的开发工具,它们为Java开发者提供了丰富的功能和界面设计支持。本压缩包包含的 "Java8 API.chm" 和 "JavaFX_API.chm" 文件,是离线版的Java 8开发手册和JavaFX API文档,允许开发者...
javafx的最新发布版本的最新API文档,包含目前新增所有包的信息!希望支持java!
JavaFX2 API chm文件
Javafx 2.0 正式版本的api手册,方便使用。
JavaFX2 JavaFX2.2.1 apidoc api文档 JavaFX
进行javafx开发时使用的api工具书。方便随时查询。
javafx-8_0_0-apidocs,该文档下载自官网,经本人制作而成方便使用的chm格式,我的更多下载资源:http://download.csdn.net/user/xubingtao。
在这个“javafx+mysql新闻发布查询系统”中,JavaFX被用作前端开发工具,用于构建用户界面,而MySQL则作为后端数据库,用于存储和管理新闻数据。 【MySQL数据库】 MySQL是一种广泛使用的开源关系型数据库管理系统...