Your SlideShare is downloading. ×
0
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
Taking A Leap Forward With
JavaFX
Simon Ritter, Oracle Corporation
Gerrit Grunwald, Canoo Engineering AG
Johan Vos, Lodgon...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3
The following is intended to outline our general pro...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4
Program Agenda
 The Man Machine Interface
 Leap Mo...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5
The Man Machine Interface
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6
How It All Started
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7
Progress was made…
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8
Multi-touch has become popular
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9
Gaming Has Driven Several Interfaces
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10
Now It’s About Gestures
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11
The Leap Motion Controller
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12
The Basics
 Small device (80 x 30 x 12mm)
 USB co...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13
The Technology
 Array of infra-red sensors
– Can b...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14
The Details
 The Leap Motion sensor detects hands,...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15
Leap Motion Java API
Co-ordinate System
Right hand ...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16
 60cm range
 150 view angle (left/right)
 120 vi...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17
Gestures
 Predefined gestures
– Circle
– Swipe
– K...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18
JavaFX Basics and 3D
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19
JavaFX: The New Way To Build Java UIs
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20
Scene Graph
 Directed Acyclic Graph
 Parents and ...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21
Binding
 Creates a dependency between a property a...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22
Properties
 Basis for high level binding API
 Con...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23
Timeline Based Animations
 Timeline
– Modifies val...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24
Animated Transitions
 Pre-defined, single-purpose ...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25
JavaFX And The Third Dimension
 Basic collection o...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26
JavaFX And The Third Dimension
 PhongMaterial
– Wa...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27
JavaFX And The Third Dimension
 How to illuminate ...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28
JavaFX And The Third Dimension
 Where the scene is...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29
Leap Motion Java API
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30
Interaction Principles
Frame
Application Code
Liste...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31
Basic Approach
 Create Controller
 Register Liste...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32
Frame By Frame
 Set of hand and finger tracking da...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33
Handling Gestures
 Enable the gestures you want to...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34
Conclusions and More
Information
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35
Conclusions
 Leap Motion adds a great new way to i...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36
Further Information
 www.leapmotion.com
 www.orac...
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37
Demos
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38
Graphic Section Divider
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39
Upcoming SlideShare
Loading in...5
×

Taking a Leap Forward With JavaFX

2,110

Published on

This is the Leap Motion and JavaFX session I presented at JavaOne 2013

Published in: Technology, News & Politics
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
2,110
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
42
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide
  • AWT and Swing use a container/component hierarchy for organising the GUI. Layout managers are fundamental to this, but can make development difficult and involved. JavaFX uses a scenegraph which will be familiar to developers who have programmed in 3D. The concept is that all components in the GUI are represented by nodes. Each node can have one parent and groupings can be made by attaching multiple nodes (which may themselves be parents) to a parent. Applying effects to groups of nodes is simply a matter of applying the effect to the parent node. Z ordering can also be altered within a group and for a group as a whole.
  • Binding is one of the most powerful features of JavaFX. It allows developers to specify the relationship between properties and values so that when the value changes the property is automatically modified byt the JavaFX runtime system. This is analogous to the listener pattern used extensively in AWT/Swing but requires less coding by the developer.The API is separated into a high level version that covers most of the common tasks, but does not provide total flexibility. For tasks that require complete flexibility the low-level API can be used. This, however, requires more coding.
  • Properties are the basis for high-level binding. There are property types for all Java primitives as well as String and Object. The API for this is simple, allowing you to bind or unbind the property. Bi-directional binding is also supported.
  • Animations are changes in properties that happen over time (fading by modifying opacity, moving the position of a node, etc).JavaFX uses a Timeline to implement this; each one consisting of a series of KeyFrames. These are points in time where a property will have a specified value (it can also be used to start an action through a method call). The KeyValue has one or more KeyValues that represent the property-value tuple. When a Timeline is started the JavaFX runtime will alter the value of the property automatically. By binding to the changing property the GUI can be animated.
  • To simplify comman tasks JavaFX includes a number of animated transitions to automate things like fading, rotation, scaling and so on. The start end and intermediate points can all be specificed. These can then be grouped together to provide either sequential or parallel transitions. For non-standard animations arbitary Timelines can also be included in the parallel or sequential transitions.
  • Transcript of "Taking a Leap Forward With JavaFX"

    1. 1. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.1
    2. 2. Taking A Leap Forward With JavaFX Simon Ritter, Oracle Corporation Gerrit Grunwald, Canoo Engineering AG Johan Vos, Lodgon José Pereda, Universidad de Valladolid
    3. 3. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.3 The following 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 Oracle’s products remains at the sole discretion of Oracle.
    4. 4. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.4 Program Agenda  The Man Machine Interface  Leap Motion Controller  JavaFX Basics and 3D  Leap Motion Java API  Demos
    5. 5. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.5 The Man Machine Interface
    6. 6. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.6 How It All Started
    7. 7. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.7 Progress was made…
    8. 8. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.8 Multi-touch has become popular
    9. 9. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.9 Gaming Has Driven Several Interfaces
    10. 10. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.10 Now It’s About Gestures
    11. 11. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.11 The Leap Motion Controller
    12. 12. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.12 The Basics  Small device (80 x 30 x 12mm)  USB connection – No external power required  Multiple OS support – Windows – Mac OSX – Linux  Low cost: $80
    13. 13. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13 The Technology  Array of infra-red sensors – Can be susceptible to bright light  Proprietary motion detection algorithm – Tracks to 0.01mm resolution – The secret sauce  1-2% CPU load  No GPU requirement
    14. 14. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.14 The Details  The Leap Motion sensor detects hands, fingers and tools  Data captured as frames continuously  Listener handles events from frames  Controller is the connection between device and application  Gesture recognition must be enabled through the controller
    15. 15. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.15 Leap Motion Java API Co-ordinate System Right hand Cartesian co-ordinate system
    16. 16. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.16  60cm range  150 view angle (left/right)  120 view angle (front/back) Field Of View
    17. 17. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17 Gestures  Predefined gestures – Circle – Swipe – Key tap (downward movement: y-axis) – Screen tap (forward movement: z-axis)  Turn, twist, tilt, make a fist – Use motion factors from frame  Translation, rotation axis, rotation angle, scale factor
    18. 18. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.18 JavaFX Basics and 3D
    19. 19. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.19 JavaFX: The New Way To Build Java UIs
    20. 20. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.20 Scene Graph  Directed Acyclic Graph  Parents and children  Representation of the GUI components
    21. 21. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.21 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
    22. 22. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.22 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
    23. 23. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.23 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
    24. 24. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.24 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
    25. 25. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.25 JavaFX And The Third Dimension  Basic collection of 3D shapes – Box – Cylinder – Sphere – MeshView (everything else)  javafx.scene.shape Shapes
    26. 26. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.26 JavaFX And The Third Dimension  PhongMaterial – Way to cover a 3D object in a colour or image – Uses interpolation to smooth polygon effects Surfaces
    27. 27. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.27 JavaFX And The Third Dimension  How to illuminate the scene  javafx.scene.effect.LightBase  AmbientLight – A light source that seems to come from all directions  PointLight – An attenuated light source that has a fixed point in space and radiates light equally away from itself in all directions Lighting
    28. 28. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.28 JavaFX And The Third Dimension  Where the scene is viewed from  PerspectiveCamera – Field of view is configurable (default is 30°)  ParallelCamera – Renders a scene without perspective correction Cameras
    29. 29. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29 Leap Motion Java API
    30. 30. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.30 Interaction Principles Frame Application Code Listener GUI Node GUI Node GUI Node Controller Leap Motion
    31. 31. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.31 Basic Approach  Create Controller  Register Listener – Subclass to implement specific functionality  onFrame callback method in Listener called by Controller  Or you can use polling  Frame contains all data – Hand position, orientation – Fingers – Pointer position, orientation
    32. 32. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.32 Frame By Frame  Set of hand and finger tracking data detected at a point in time  Hand provides: – Direction of palm – List of visible Fingers  Finger (which is a subclass of Pointable) provides: – Direction – Tip position and velocity – Length, width – Time visible
    33. 33. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.33 Handling Gestures  Enable the gestures you want to use  Recognised gesture data is added to the Frame GestureList gl = frame.gestures(); for (int i = 0; i < gl.count(); i++) { Gesture g = gl.get(i); if (g.type == TYPE_SWIPE) SwipeGesture sw = new SwipeGesture(g); ...
    34. 34. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.34 Conclusions and More Information
    35. 35. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.35 Conclusions  Leap Motion adds a great new way to interact with applications  Java support makes integration with existing applications simple – Clean, straightforward API – Simple gesture recognition  Use your imagination!
    36. 36. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.36 Further Information  www.leapmotion.com  www.oracle.com/javafx  jperedadnr.blogspot.co.uk  blogs.oracle.com/speakjava
    37. 37. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.37 Demos
    38. 38. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.38 Graphic Section Divider
    39. 39. Copyright © 2012, Oracle and/or its affiliates. All rights reserved.39
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×