`
ada_li_li
  • 浏览: 115842 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

  • 分享到:
    评论

    相关推荐

      基于JavaFx的常见自定义UI组件设计源码

      本项目为JavaFx平台下的自定义UI组件设计源码,汇集了110个Java源文件、27个CSS样式文件、24个PNG图片资源、18个JavaScript脚本文件、5个XML配置文件、3个GIF动画文件、2个字体文件(ttf)、2个JPEG图片文件、2个...

      javafx-11.0.2 jar.rar

      2. **JavaFX Controls**: 这个模块包含了各种常见的GUI控件,如按钮、文本框、菜单、表格等。`javafx.controls.jar`提供了这些控件的API,开发者可以方便地创建复杂的用户界面。 3. **JavaFX Graphics**: 提供了2D...

      javaFx pdf 阅读软件

      JavaFX PDF阅读软件是一款基于JavaFX技术开发的PDF文档查看应用程序。它利用开源库icepdf来解析和渲染PDF文档,为用户...开发者可以通过这个项目学习到JavaFX的GUI编程、事件处理、以及利用开源库解决实际问题的方法。

      JavaFx开发Windows画图板工具

      JavaFX是一种强大的、基于Java的富客户端应用开发框架,它为创建桌面、移动和Web应用程序提供了丰富的图形用户界面(GUI)工具集。本项目“JavaFx开发Windows画图板工具”旨在模仿Windows操作系统内置的画图应用,为...

      《JavaFX Essentials》 源码

      JavaFX提供了一系列内置控件,如Button、Label、TextField、TableView等,覆盖了常见的用户交互需求。这些控件可以通过JavaFX的API进行自定义,以满足特定的设计和功能需求。 4. **2D和3D图形**: JavaFX支持2D和...

      openjdk8 with javafx

      deb和rpm是Linux发行版中常见的软件包格式,分别对应Debian和Red Hat系的系统,而zip文件则适用于Windows平台。这些预编译的二进制包使得用户可以直接安装和使用OpenJDK8,而无需自己编译源代码。 安装这些包的过程...

      javafx 11 jar包,亲测可用

      - `javafx.controls.jar`:提供了常见的UI控件,如按钮、文本框、菜单等,便于快速构建用户界面。 - `javafx.base.jar`:基础库,包含了许多JavaFX系统的基础服务和通用类。 - `javafx.media.jar`:媒体库,支持...

      javafx显示多个窗口以及javafx多窗口之间数据交互传输项目原文件

      一种常见的数据共享方式是使用静态变量或单例模式,确保在整个应用程序范围内只存在一个数据存储实例。另一种方法是通过事件发布/订阅模型,创建自定义事件并在窗口之间传播。例如,可以创建一个自定义事件类,然后...

      javaFX 实现截屏

      在这个特定的场景中,我们讨论的是使用JavaFX实现截图功能,这是一种常见的需求,特别是在开发桌面应用时,比如屏幕录制软件或者任何需要获取用户屏幕图像的应用。 首先,我们要理解JavaFX如何提供屏幕捕获的能力。...

      javaFX 图片放大缩小移动

      一种常见的做法是监听鼠标的滚轮事件,当滚轮向上滚动时增大尺寸,向下滚动时减小尺寸。这可以通过实现`ScrollEvent.ANY`监听器并调用`ImageView`的`setScaleX()`和`setScaleY()`方法来完成。为了以图片中心为基准...

      JavaFX+Jfoenix 学习笔记(十)--系统托盘及解决中文乱码问题源码

      在本篇JavaFX+Jfoenix学习笔记中,我们将探讨如何在JavaFX应用程序中实现系统托盘功能,以及如何解决可能出现的中文乱码问题。系统托盘是现代桌面应用中常见的一种特性,允许用户在关闭主窗口后,仍然可以通过托盘...

      JavaFX2如何使用第三方字体(use custom fonts in JavaFX2)

      在JavaFX2中引入第三方字体是一项常见的需求,它允许开发者为应用程序添加独特的视觉风格。本文将详细介绍如何在JavaFX2中使用自定义字体,并通过一个简单的示例——`CustomFontApp`来阐述整个过程。 首先,你需要...

      JavaFX拖放操作示例

      拖放操作在用户界面设计中非常常见,它允许用户通过简单的鼠标操作来移动或复制数据。在JavaFX中,实现这一功能主要依赖于`Dragboard`、`TransferMode`和事件处理器如`onDragDetected`、`onDragEntered`、`...

      javaFx开发的炫酷浏览器

      其次,JavaFX支持事件处理和响应机制,使得我们可以为浏览器添加诸如点击链接、前进、后退、刷新、书签等常见的浏览器功能。例如,通过绑定事件监听器,我们可以监听用户的鼠标点击事件,根据点击的链接执行相应的...

      jAVAfx的增删改查demo文件

      - MVC(Model-View-Controller)模式在JavaFX中很常见,模型负责数据管理,视图负责展示,控制器处理用户交互。 - MVP(Model-View-Presenter)模式也可用于组织代码,特别是在大型项目中。 10. **版本控制** - ...

      javafx-文档.zip

      4. **媒体支持**:内建的媒体模块使得JavaFX可以播放音频和视频,支持常见的媒体格式。 5. **Web视图**:JavaFX集成了Web引擎,可以显示网页内容,甚至在应用程序内部嵌入完整的浏览器。 6. **事件处理**:JavaFX...

      javafx-src.zip_javaFx_javafx src_javafx- src_javafx-src_javafx.r

      `javafx.controls`包含了常见的UI控件,如按钮、文本框等。 3. **netscape**: 这个包可能与早期Java的历史有关,尤其是与Netscape Navigator浏览器的Java插件相关。在JavaFX中,它可能包含一些与浏览器集成或网络...

      javafx sample code

      JavaFX 是一个用于创建桌面和移动应用程序的 Java 平台,提供丰富的用户界面和图形功能。这个"javafx sample code"压缩包包含了多个示例项目,...同时,实践这些代码可以加深对JavaFX API的理解,提高解决问题的能力。

      Pro JavaFX 8.pdf

      - 并发编程的最佳实践与常见陷阱避免。 #### 第8章:Creating Charts in JavaFX - **目标读者**:希望利用JavaFX创建图表的开发者。 - **内容概览**: - JavaFX内置图表库的功能介绍。 - 创建不同类型图表的步骤...

      javafx-src.zip

      5. **媒体处理**:JavaFX内建了媒体API(javafx.media),可以播放音频和视频,支持常见的多媒体格式。 6. **事件处理**:JavaFX的事件处理模型使得开发者能轻松响应用户的交互操作,如点击、拖放等。 7. **网络...

    Global site tag (gtag.js) - Google Analytics