一、特性一览
javafx8发布有一段时间了,今天闲来看看。javafx主要致力于富客户端开发,以弥补swing的缺陷,主要提供图形库与media库,支持audio,vedio,graphics,animation,3D等,同时采用现代化的css方式支持界面设计。同时又采用XUI方式以XML方式设计UI界面,达到显示与逻辑的分离。与android这方面确实有点相似性。
javafx体系结构:
javafx特性
- 1.javafx8内嵌为java API,与JDK一起打包,javafx运行环境被加入了jre中。
- 2.FXML与SceneBuilder: FXML是以XML为基础的UI界面描述文件,用于构造XUI形式的界面,与android颇为相似。 SceneBuilder是一种可视化拖拽的FXML生成器,以可视化方式设计UI界面,同时fxml中还可以使用javascript来进行事件的处理。(另一种方式是通过注解在单独的controller类中进行事件处理。)
- 3.WebView: WebView是一个webkit浏览器组件支持HTML,HTML5, JS,CSS等,javafx8强化了对HTML5的支持,可以支持HTML5的一些新特性如:webWork,WebSocket等。 同时允许java API与JS 相互调用。这与android也颇为相似。
- 4.Swing集成:javafx可以与swing组件相互集成,javafx8新增了SwingNode类,可以使swing组件集成到javafx中。
- 5.内键的UI组件Controls与CSS样式:UI组件可以自由地通过CSS来设计皮肤。 DatePicker and TreeTableView 在javafx8中被添加了进来。同时 CSS Styleable*类已经成为了开放的API,允许我们自由地通过css定制样式。
- 6.Modena theme: javafx8采用了新的主题。如果你希望使用旧主题,可以通过 setUserAgentStylesheet(STYLESHEET_CASPIAN)
- 7.3D绘图能力:javafx8新增了3D类库,如: Shape3D (Box, Cylinder, MeshView, and Sphere subclasses), SubScene, Material, PickResult, LightBase (AmbientLight and PointLight subclasses), and SceneAntialiasing。
- 8.Canvas API:
- 9.Printing API:javafx新增了javafx.print包
- 10.RichText Support富文本支持:javafx强化了富文本的支持。
- 11.MultiTouch Support:强化了touch支持
- 12.Hi-DPI支持:强化了显示效果。
- 13硬件图形加速:Hardware-accelerated graphics pipeline:
- 14.高性能媒体media引擎
- 15.Self-contained application deployment model自包含部署模式:可以自动提取必须的运行环