0% found this document useful (0 votes)
11 views

Reserved. Insert Information Protection Policy Classification From Slide 8

java slide

Uploaded by

Quoc Thinh
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Reserved. Insert Information Protection Policy Classification From Slide 8

java slide

Uploaded by

Quoc Thinh
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

1

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Tm hiu JavaFX
V Minh Nht
Dng Quc Thnh
Nguyn Th Minh Thi
2

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

12520665
12520725
12520717

Presenting with
LOGO

Program Agenda

Background
Technical Details
Roadmap
JavaFX in Action (Demos)

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Java Pioneered Rich Client Applications


But developers had to learn multiple technologies

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX Simplifies Application Development


Developers Focus on Capabilities Instead of Technologies

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX is the Evolution of Java as a Rich Client Platform.


It is designed to provide a modern Java environment
featuring a lightweight, hardware accelerated UI platform
that meets tomorrows needs.

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX Runtime High Level Architecture

JavaFX Glossary
Glass Windowing Toolkit: Provides native operating services, such as
managing the windows, timers, and surfaces
Prism: Graphics pipeline that can run on hardware and software renderers
Quantum Toolkit: Ties Prism and Glass together and makes them
available to the JavaFX APIs
7

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX 2.0 Scoreboard


Released on time (October 2011)

All functionality exposed through Java APIs

JavaFX and JavaScript/HTML5 interoperability

High performance 2D and 3D graphics engine

Designed to exploit modern advances in desktop


and mobile

Make JavaFX UI Controls available open source

Complete and integrated development lifecycle


Done In progress
experience

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Java APIs and FXML


Java APIs for JavaFX

End-to-end Java development


Java language features - generics,
annotations, multi-threading
Fluent API for UI construction
Alternative JVM supported languages
(e.g. Groovy, Scala) with JavaFX
Leverage sophisticated Java IDEs,
debuggers and profilers
Java APIs preserve convenient
JavaFX Script features (e.g., bind)

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

FXML

Scriptable, XML-based markup


language for defining UI
Convenient alternative to developing
UI programmatically in Java
Easy to learn and intuitive for
developers familiar with web
technologies or other markup based
UI technologies
Powerful scripting feature allows
embedding scripts within FXML. Any
JVM scripting language can be used,
including JavaScript, Groovy, and
Scala

Insert Information Protection Policy Classification from Slide 8

Graphics and Media


New Graphics Pipeline

New hardware accelerated graphics


pipeline (Prism)
New windowing toolkit (Glass) for
Prism
Java2D software pipeline under
Prism
High-level support for making rich
graphics simple
Shadows, Blurs, Reflections, Effects,
2D transforms
3D Transforms today; Full 3D objects
in future
10

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Media

Stable media framework based on


GStreamer
VP6, MP3 playback of Web
multimedia content
Low latency audio
Alpha channel support
Performance improvements
Full screen video

Insert Information Protection Policy Classification from Slide 8

WebView and Swing Interoperability


WebView Component

Embed Web content


in JavaFX
applications
HTML rendering
based on Webkit
Hardware accelerated
rendering using
PRISM
DOM access and
manipulation

11

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Swing and SWT Interop

Embed JavaFX
content into existing
Swing applications
Extend existing Swing
applications with new
JavaFX features such
as WebView and
high-performance
graphics
Applies to SWT
applications as well
Insert Information Protection Policy Classification from Slide 8

Browser Plugin

Faster loading of
JavaFX Web
applications based on
Prism
Pre-loader for
improved user
experience with
JavaFX Web
applications

Open Source and Standardization


JavaFX source code being contributed as part of OpenJFX
http://openjdk.java.net/projects/openjfx/
Source code being contributed in phases
Initial phase: UI Controls

Oracle is committed to standardize JavaFX through JCP


One or more JSRs will be submitted
Expected to be become part of the Java SE specification

12

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Distribution and Support


JavaFX Distribution
JavaFX Runtime can now be distributed with third party
applications
Applies to JavaFX 2.0.2 and higher

JavaFX Platform Commercial Support


JavaFX is now part of the Java SE technologies covered through
Oracle Premier Support
Applies to JavaFX 2.0.2 and higher

13

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Lets Compare: JavaFX 1.x


import javafx.application.*;
import javafx.scene.shape.*;
import javafx.scene.paint.*;
Stage {
scene:Scene{
Content:[
Circle {
centerX: 50
centerY: 50
radius: 50
fill: Color.RED
}
]
}
}
14

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Lets Compare: JavaFX 2.0


public class JavaFXTest extends Application {
@Override public void start(Stage stage) {
Group root = new Group();
Scene scene = new Scene(root,100,100);
stage.setScene(scene);
Circle c1 =
new Circle(50.0f, 50.0f, 50.0f, Color.RED);

root.getChildren().add(c1);
stage.setVisible(true);

public static void main(String a[]) {


Launcher.launch(JavaFXTest.class, null);
}
}
15

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Lets Compare: FXML


<BorderPane>
<center>
<Circle radius=50 centerX=50 centerY=50/>
</center>
</BorderPane>
public class JavaFXTest extends Application {
@Override public void start(Stage stage) {
stage.setTitle(FXML Example);
Parent root = FXMLLoader.load(getClass().getResource(example.fxml"),
ResourceBundle.getBundle(r.fxml_example"));
stage.setScene(new Scene(root));
stage.show();
}
}
16

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Scene Graph
Directed Acyclic Graph
Parents and children
Representation of the GUI components

17

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Media
JavaFX supports both visual and audio media
Cross-platform JavaFX media file format (fxm, mp3)
Platform specific formats supported via native players

Media class represents a media file


MediaPlayer provides control of the media rendering
MediaView uses MediaPlayer to render media as Node
Many MediaViews can use the same MediaPlayer (cheaply)

18

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Adding HTML Content


The Embedded Browser

WebEngine
Provides basic web page browsing functionality
Supports user interaction: navigating links, submitting forms

WebView
Web page as a Node in scenegraph
Effects can be applied

Encapsulates WebEngine object


No plugin support

19

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Charts

20

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Effects...
GaussianBlur

InnerShadow

Reflection
SepiaTone

21

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Transforms
Rectangle rect=new Rectangle(0,0,60,60);
rect.setFill(Color.DODGERBLUE);
rect.setArcWidth(10);
rect.setArcHeight(10);
rect.setRotate(45);
rect.setScaleX(2);
rect.setScaleY(0.5);
Shear shear = new Shear(0.7, 0);
rect.getTransforms().add(shear);
rect.setTranslateX(40);
rect.setTranslateY(10);

22

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Binding
Creates a dependency between a property and a
changeable value
High level API
Easy to use
Covers most common situations

Low level API


Allows for more complex interactions
Optimised for fast execution and small footprint

23

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Properties
Basis for high level binding API
Concrete types for all primitives, String and Object
DoubleProperty, StringProperty, etc

Simple API
bind / unbind
bindBidirectional / unbindBidirectional
isBound

24

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Simple Binding Example


private SimpleDoubleProperty topXProperty =
new SimpleDoubleProperty();
private SimpleDoubleProperty topYProperty =
new SimpleDoubleProperty();
Line foldLine = new Line();
foldLine.setEndX(200);
foldLine.setEndY(200);
foldLine.startXProperty().bind(topXProperty);
foldLine.startYProperty().bind(topYProperty);
...
topXProperty.set(tx);
topYProperty.set(ty);
25

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Timeline Based Animations


Timeline
Modifies values of variables specified in KeyFrames

KeyFrame: specifies that a variable should have


A particular value at a particular time

KeyValue: Value to be interpolated for an interval

26

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Animated Transitions
Pre-defined, single-purpose animations
Fade, Path, Pause, Rotate, Scale, Translate
Can specify to, from and by values

Container transitions
Parallel, sequential
Can be nested arbitarily

Transitions and Timelines share ancestary


A Timeline can be added to a Parallel / Sequential transition

27

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Standard Java Tools for Easy Development


Source editor with improved syntactic
highlighting, code completion, refactoring etc.
Full debugger and profiler support
Project wizard for easy creation of JavaFX
applications
Other Java IDEs
Source editor with syntactic highlighting,
code completion, refactoring etc.
Full debugger and Profiler support

28

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX Scene Builder for Rapid UI Design


WYSIWYG GUI design tool for the
JavaFX platform
Enables designing user interface
screens by simply dragging and
positioning GUI components from a
palette onto a scene
Generates files in FXML format that
can be used within a project in any IDE
such as NetBeans or Eclipse
Can be used to create GUI for desktop
and Web applications
Currently in Early Access (by invitation)
29

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX Future Directions


Oracles Next Generation Java Client Solution

30

Tighter Integration with Java SE


Migration Path for Java Client UI Technologies
Optimized Web Services Support
Advanced Tooling
Support for Modern Device Interactions
Delivering on the Cross Platform Promise

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX is

31

Cross platform: Windows GA, Mac & Linux Dev. Preview


Familiar: 100% Java APIs
Powerful: leverages underlying Java platform
Modern: CSS skinning, HW acceleration, Webkit
Backwards compatible: Swing & SWT interoperability
Flexible: applicable to embedded, tablets and mobile
Open Source: http://openjdk.java.net/projects/openjfx

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

JavaFX Roadmap
JavaFX 2.0

JavaFX 2.1

Windows GA
Mac OS X Dev. Preview

Mac OS X GA
Linux Dev. Preview

2011
2011

2012
2012

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Included in JDK 8
Concurrent OS support
(Windows, Mac OS, Linux)

2014
2014

2013
2013

JavaFX 2.0.2

JavaFX 2.2

JDK 7 co-install

Linux GA

JavaFX
Scene Builder EA

32

JavaFX 3.0

JavaFX
Scene Builder GA
NetBeans 7.1

NetBeans

JavaFX 2.0 Support

JavaFX 3.0 Support

Insert Information Protection Policy Classification from Slide 8

Resources
JavaFX website: http://javafx.com
Open source project
http://openjdk.java.net/projects/openjfx/

Oracle Premier Support for Software


http://www.oracle.com/us/support/software/premier/

Blogs
http://fxexperience.com
http://blogs.oracle.com/javafx

Twitter: @javafx4you

33

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

The preceding is intended to outline our general


product direction. It is intended for information
purposes only, and may not be incorporated into any
contract. It is not a commitment to deliver any material,
code, or functionality, and should not be relied upon in
making purchasing decisions.
The development, release, and timing of any features
or functionality described for Oracles products remains
at the sole discretion of Oracle.
34

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

Q&A

35

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

36

Copyright 2011, Oracle and/or its affiliates. All rights


reserved.

Insert Information Protection Policy Classification from Slide 8

You might also like