JavaFX 常见问题

<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

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

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

1 常规问题
2 媒体
3 图形
4 Web 服务
5 JavaFX Script
6 工具
7 资源

更新版本的官方英文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

  • 你可能感兴趣的:(swing,Flex,mobile,JavaFX,JavaME)