JavaFX 常见问题

JavaFX的问题以及解答,大部分都可以在 官方的中文JavaFX FAQ 找到,这里从其它地方收集和翻译了一些问题与解答,问答问题的人包括JavaFX开发组的工程师,架构师,执行总裁,以及Sun的CEO。这篇文章的问题与回答收集截止到 20009.2.28.

官方的中文JavaFX 常见问题列表 (http://developer.sun.com.cn/javafx/faq/)

1 常规问题
  • 1.1 什么是 JavaFX 1.0?
  • 1.2 Sun 通过 JavaFX 1.0 发布了什么?
  • 1.3 JavaFX 1.0 提供了哪些高级功能?
  • 1.4 何时发布 JavaFX 1.0?
  • 1.5 使用 JavaFX 1.0 能构建什么类型的应用程序?
  • 1.6 JavaFX 应用程序在何处运行?
  • 1.7 JavaFX 正在替代 Swing 成为 Java 的客户端 UI 库吗?
  • 1.8 构建 JavaFX 应用程序需要哪些软件?
  • 1.9 需要安装 JavaFX 运行时或插件来运行 JavaFX 应用程序吗?
  • 1.10 JavaFX 与 Java 有何不同?
  • 1.11 Linux 和 Solaris 上将支持 JavaFX 吗?
  • 1.12 应该如何开始学习 JavaFX?
  • 1.13 如何获取 JavaFX 1.0 SDK?
  • 1.14 如何获取 JavaFX 1.0 运行时?
  • 1.15 如何验证已经安装了 JavaFX ?
  • 1.16 JavaFX 1.0 与 JavaFX Preview 有何不同?
2 媒体
  • 2.1 JavaFX 支持哪些媒体解码/编码器和格式?
  • 2.2 如何将我的视频进行编码以支持编码方式和 JavaFX 文件格式?
3 图形
  • 3.1 JavaFX 1.0 支持哪些效果和转换?
  • 3.2 JavaFX 1.0 Mobile 平台上也支持效果和转换吗?
  • 3.3 JavaFX 1.0 支持 3D 图形吗?
4 Web 服务
  • 4.1 从 JavaFX 应用程序中能调用哪些 Web 服务?
  • 4.2 JavaFX 如何处理跨域的 Web 服务请求?
5 JavaFX Script
  • 5.1 什么是 JavaFX Script?
  • 5.2 为什么 Sun Microsystems 要创建一种全新的语言?Sun 为何不在 Java 中构建这些功能?
  • 5.3 我现在使用 Java 构建应用程序。我可以在 JavaFX Script 中重用 Java 库吗?
  • 5.4 我使用 JavaScript 和 ActionScript 进行编程。但是对 Java 一无所知。我仍然可以学习 JavaFX Script 吗?
  • 5.5 与 JavaScript 和 ActionScript 相比,JavaFX Script 有哪些优点?
  • 5.6 我的 applet 可以从 JavaFX Script 中调用 JavaScript 吗?反之也是这样吗?
6 工具
  • 6.1 JavaFX 1.0 提供了哪些可用的工具?
  • 6.2 我已经安装了 NetBeans IDE 6.5。应该如何获取 JavaFX 插件?
  • 6.3 NetBeans IDE 6.5 能创建什么类型的应用程序?
  • 6.4 解释 JavaFX 设计人员-开发人员工作流
  • 6.5 JavaFX 1.0 Production Suite 支持 Adobe Photoshop CS4 和 Adobe Illustrator CS4 吗?
7 资源
  • 7.1 从何处下载 JavaFX SDK 及工具?
  • 7.2 从何处获取有关 JavaFX 的教程和其他学习信息?
  • 7.3 从何处获取 JavaFX 应用程序的示例?
  • 7.4 如何参与 JavaFX?

更新版本的官方英文JavaFX 常见问题见: http://www.javafx.com/faq/

 

收集和翻译了一些问题与解答

 

1. 问题: JavaFX 正在替代 Swing 成为 Java 的客户端 UI 库吗? (参考1,2,7)

回答:不可以替代。JavaFX 是构建丰富的多场景(例如桌面、浏览器、手机和电视) RIA 的富客户端平台。然而,Swing 是一组可扩展的 GUI 组件,通过此组件,开发人员能为基于桌面的商业应用程序快速开发功能强大的 Java 前端。基于桌面环境而设计的 JavaFX 应用程序可以利用功能强大的 Swing 小部件工具包构建适宜于桌面的 RIA。

 

2. 问题:Applet可以嵌入在网页中,可以使用Swing,也可以实现Rich Internet Applications (RIA). 看起来JavaFX实现的功能和Applet类似,它们之间有什么区别吗?(参考2)

回答:"Applet"是一种部署模式.Applet可以用任何JVM支持的语言编写, 比如Java, JavaFX Script, Ruby, Groovy等.JavaFX 编写交互式的Applet更容易些,开发RIA应用程序比Java效率更高.

 

3. 问题:能否比较一下JavaFX 和Flex? (参考3)

回答:(这是一个曾在Sun JavaFX工作,现在Adobe Flex做开发的工程师的比较)

  • 成熟度: Flex问世早, 知名度比JavaFX高
  • 语言: JavaFX借助JavaFX Script开发程序.JavaFX Script也是一种脚本语言,只是底层的很多功能依赖Java平台.而Flex这种脚本语言用MXML做声明,而用ActionScript来编程.JavaFX把声明和编程放在了一起.
  • GUI: JavaFX和Flex都提供GUI部件,图象,动画,数据绑定.
  • 工具:JavaFX目前所发布的工具更多的是针对开发者.而Flex为设计者考虑的更多,因而在设计者/开发者的工作流的工具也多.
  • 运行环境:JavaFX需要Java平台,而Flex, 需要Flash平台.

 

4. 问题:JavaFX 部署有几种方式 (参考4)

回答:目前可以体验的有四种

  • 浏览器中的Applet
  • 桌面上的Applet
  • Web Start启动的Stand alone应用程序
  • Java Mobile上的JavaFX应用程序

将来JavaFX TV发布后, 会多出一种针对TV的部署方式.

 

5. 问题:设计者如何使用JavaFX? (参考4)

回答:我们在Adobe Max的大会上介绍了JavaFX, 很多人对JavaFX很感兴趣, 也很激动, 原因有两个.

  • 习惯使用Photoshop和Illustrator的设计者, 可以继续在JavaFX中使用
  • JavaFX可以让设计者做他们用Flex或者其他技术无法实现的功能, 比如, 把Applet从浏览器中拖拽到桌面, 比如在3D 立方体中放视频. 比如访问现有的Java代码... 对很多游戏开发者来说, 这点很重要, 因为有很多开源的Java游戏库.

 

6. 问题:JavaFX 会开源吗? (参考2, 5)

回答:JavaFX有一些代码不属于Sun拥有, 所以没有办法开源. 我们正在致力与解决这部分关联, 为以后开源做准备. 目前 JavaFX compiler, Netbeans JavaFX plugin 和 Eclipse JavaFX plugin 是开源的.

 

7. 问题:怎么给JavaFX 发bug, 以及跟踪Bug的信息? (参考5)

回答:开发者可以登陆http://javafx-jira.kenai.com/secure/Dashboard.jspa. 来发bug, 并且跟踪Bug的解决情况.

 

8. 问题:JavaFX Mobiile 与JavaME, MSA的关系?(参考5)

回答:我们打算在JavaFX 支持CLDC和CDC. 理想情况下, 我们希望人们能在MSA的子集中创建JavaFX Mobile应用程序, 但对JSR135来说, JavaFX的运行环境有些苛刻. 在这一点上, 我们没有为OS创建full stack的计划, 未来也许会做. 我们打算在现在的JavaME stack中支持一部分, 这样合作伙伴可以在OS 上部署JavaFX, 比如Windows Mobile.

 

9. 问题:为什么为JavaFX创建新的图象格式, FXZ, FXD (参考5)

回答:设计者可以在Photoshop 或者 Illustrator中创建图象后,  转换为FXZ格式. 而FXD文件可以为FXZ文件更多功能, 比如保留层, 另外FXZ也可以处理矢量(vector)和光栅(raster). 这样可以让开发者灵活处理转换出的图象格式, 并且创建让人惊叹的视觉效果.

 

10.  问题:如果我创建了一个JavaFX Applet和Server进行通信, 如果我把这个JavaFX Applet拖拽到桌面, 那么Applet和Server之间的通讯会中断吗? (参考2)

回答: 拖拽到桌面的Applet依然是Applet, 仍旧在Sandbox中运行, 依然缓存在Applet Chche中. 因此, Applet和Server间的通讯仍然工作. 只是, 你可以为拖拽动作增加一些代码, 来完成一些特殊的功能.

 

11. 问题:JavaFX是在JRE中, 还是需要单独下载? (参考2)

回答:我们没有任何计划要把JavaFX加到JRE中. JavaFX会在需要的时候下载, 然后缓存在本地.

 

12. 问题:JavaFX最终会采用本地以及跨平台的音频视频播放器. 而目前的跨平台部分是由ON2发行的,是否这部分将来都会用纯Java写? (参考2)

回答: 在目前的JavaFX框架中, 音频视频的解码是由ON2提供的优化后的本地库, 用Java 2D做润色, 并且库作为JavaFX运行环境的一部分发行. 将来如果Java的效率允许,我们会转到用Java写解码器.

 

13. 问题:音频视频的跨平台是否意味着JavaFX只支持标准的格式,比如MP3, AVI, Flash, 以及需要访问本地库的WMV? (参考2,5)

回答: 跨平台需要本地支持. 例如, 在Windows中, 你可以播放任何Directshow支持的音频视频格式. 在Mac上, 你可以播放任何Quicktime支持的. 但跨平台, 我们是指在所有的平台上支持可以工作在JavaFX的媒体文件。目前JavaFX只支持On2的TrueMotion Codecs. 我们会继续研究其它跨平台的媒体格式, 另外也会参考OMS (开放的媒体编码解码项目 http://blogs.sun.com/openmediacommons/entry/oms_video_a_project_of)

 

14. 问题:如何将现有的Java企业应用程序移植到JavaFX上?(参考1)

回答:JavaFX适合开发客户端GUI, 你可以把原有的Web界面改为JavaFX开发的RIA, 而Server端的仍采用Java.这样也可以保护你原来的投资.

 

参考:

1. http://www.pushing-pixels.org/?p=312

2. http://java.sun.com/developer/community/askxprt/sessions/2008/jl0818.jsp

3. http://tech.groups.yahoo.com/group/flexcoders/message/130608

4. http://javafx10-launch-dec08.eventbrite.com/

5. http://blogs.sun.com/meetjeet/entry/javafx_the_road_ahead

6. http://www.javafx.com/faq/

7. http://developer.sun.com.cn/javafx/faq/

8. http://blogs.sun.com/javafx/entry/a_word_on_linux_and 

9. http://blogs.sun.com/jonathan_zh/entry/javafx_下载量突破一亿

10. http://blogs.zdnet.com/Burnette/?p=694

11. http://forums.sun.com/forum.jspa?forumID=932

你可能感兴趣的:(JavaFX 常见问题)