javaone 2011 progressive javafx 2.0 custom components
TRANSCRIPT
![Page 1: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/1.jpg)
Peter Pilgrim Oracle Java Champion
10/15/2011 XeNoNiQUe.co.uk (c) 2011 1
![Page 2: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/2.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 2
Blog: www.XeNoNiQUe.co.uk/blog/
Industry: Financial Services, London, UK
Education: London South Bank University
Languages: Scala, Java, Groovy, Clojure
Conferences: JavaOne, ACCU, QCon, Devoxx
![Page 3: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/3.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 3
“At the end of the day, on the one
hand we have computer systems,
and on the other, people. Connecting
them together, and allowing people
to interact with computer systems in
a compelling way, requires graphical
user interfaces Chris Oliver, Creator of F3
http://blogs.oracle.com/chrisoliver/entry/epitaph
![Page 4: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/4.jpg)
Headline News
“Something that no one has mentioned and surprises me very much is that JavaFX 2.0 will only be supported on Windows...” - Max Katz, March 2011
“The major difference in the new version is that it provides Java APIs for JavaFX, allowing you to use JavaFX from within your normal Java applications” - James Sugrue, JavaLobby, May 2011
“You can write Pivot applications in Java or any other JVM language (you are not limited to JavaFX Script). ” – Greg Brown, Apache Pivot, Mailing List, Sept 2010
10/15/2011 XeNoNiQUe.co.uk (c) 2011 4
![Page 5: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/5.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 5
Demo
![Page 6: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/6.jpg)
The Plan
What is a component?
What types of component?
How does binding work?
Design Adaptive Process
Future Work
10/15/2011 XeNoNiQUe.co.uk (c) 2011 6
![Page 7: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/7.jpg)
JavaFX
2.0
10/15/2011 XeNoNiQUe.co.uk (c) 2011 7
![Page 8: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/8.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 8
The Basics
![Page 9: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/9.jpg)
The Scene-graph is King.
10/15/2011 XeNoNiQUe.co.uk (c) 2011 9
![Page 10: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/10.jpg)
Customers want applications
that work like today’s popular
mobile devices.
10/15/2011 XeNoNiQUe.co.uk (c) 2011 10
![Page 11: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/11.jpg)
JavaFX forms, controls and
layouts provide reinvestment .
10/15/2011 XeNoNiQUe.co.uk (c) 2011 11
![Page 12: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/12.jpg)
The Java platform is proven
10/15/2011 XeNoNiQUe.co.uk (c) 2011 12
![Page 13: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/13.jpg)
We know how to make Java
run fast and it will get faster.
10/15/2011 XeNoNiQUe.co.uk (c) 2011 13
![Page 14: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/14.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 14
Demo
![Page 15: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/15.jpg)
How much work must we do
to reinvigorate a platform?
10/15/2011 XeNoNiQUe.co.uk (c) 2011 15
![Page 16: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/16.jpg)
Java Virtual Machine is the
crown jewels
10/15/2011 XeNoNiQUe.co.uk (c) 2011 16
![Page 17: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/17.jpg)
JavaFX is written in Java,
Java runs on the JVM
10/15/2011 XeNoNiQUe.co.uk (c) 2011 17
![Page 18: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/18.jpg)
Every Node …
Every Node can have a clip node
Effectively generate a bitmap mask
Easy to create a “PortHole” widget
Invert the selection of the clip node, you
can create a “Punch” out widget
10/15/2011 XeNoNiQUe.co.uk (c) 2011 18
![Page 19: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/19.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 19
Media
Image View
1
Image View
2
Image View
3
Image View
4
![Page 20: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/20.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 20
Media Player
Media View
1
Media View
2
Media View
3
Media View
4
Media
![Page 21: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/21.jpg)
Breaking Glass
1. Divide a bounded area into four
triangles
2. Are we there yet?
3. For each triangle
A. Choose a random side and split it to two
rectangles
B. Recursive descend the two triangles (step
2)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 21
![Page 22: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/22.jpg)
Express Yourself
10/15/2011 XeNoNiQUe.co.uk (c) 2011 22
![Page 23: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/23.jpg)
JavaFX Properties.
10/15/2011 XeNoNiQUe.co.uk (c) 2011 23
![Page 24: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/24.jpg)
Properties
Primitive Properties
Object Properties
FX List Collection Properties
10/15/2011 XeNoNiQUe.co.uk (c) 2011 24
![Page 25: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/25.jpg)
Listeners
Change Listener
Observable, old value, new value
Invalidation Listeners
Observable
10/15/2011 XeNoNiQUe.co.uk (c) 2011 25
![Page 26: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/26.jpg)
Property Listener Example
10/15/2011 XeNoNiQUe.co.uk (c) 2011 26
![Page 27: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/27.jpg)
Properties of Component
10/15/2011 XeNoNiQUe.co.uk (c) 2011 27
![Page 28: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/28.jpg)
Code Generate JavaFX
Properties
e.g. Groovy
10/15/2011 XeNoNiQUe.co.uk (c) 2011 28
![Page 29: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/29.jpg)
Hey Ho! This is all just to say:
var temparature: Integer = 23 on replace oldValue {
println(“temperature={temperarture},
oldValue={oldValue}”
}
// JavaFX Script 1.3
10/15/2011 XeNoNiQUe.co.uk (c) 2011 29
![Page 30: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/30.jpg)
JavaFX
Components
10/15/2011 XeNoNiQUe.co.uk (c) 2011 30
![Page 31: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/31.jpg)
A pad, a paper and a pen,
first!
10/15/2011 XeNoNiQUe.co.uk (c) 2011 31
![Page 32: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/32.jpg)
A JavaFX component is an
encapsulation that binds a
particular tree set of nodes with
the operations that act on those
nodes
10/15/2011 XeNoNiQUe.co.uk (c) 2011 32
![Page 33: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/33.jpg)
Component Types
Non-Resizable
javafx.scene.shape.Shape
javafx.scene.Group
Resizable
javafx.scene.layout.Pane
javafx.scene.layout.Region
javafx.scene.layout.Control
10/15/2011 XeNoNiQUe.co.uk (c) 2011 33
![Page 34: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/34.jpg)
Group based
Particularly using the JavaFX primitive
nodes under javafx.scene.shape.*;
Design is not meant to be resized
Layout is fixed at construction /
initialisation time
10/15/2011 XeNoNiQUe.co.uk (c) 2011 34
![Page 35: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/35.jpg)
Region based
Region is the sub class of
javafx.scene.Parent
Adds the ability to resize a node, layout
a particular set of children
10/15/2011 XeNoNiQUe.co.uk (c) 2011 35
![Page 36: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/36.jpg)
Control based
Allows particular subclass of Region that permits skinning of node with a stylesheet
You need 3 classes
The Control
java.scene.control.Control type
The Skinnable
java.scene.control.Skinnable
The Behaviour
com.sun.javafx.scene.control.BehaviorBase
10/15/2011 XeNoNiQUe.co.uk (c) 2011 36
![Page 37: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/37.jpg)
Control based
Allows particular subclass of Region that permits skinning of node with a stylesheet
Control is a direct type of Parent
You need 3 classes The Control
java.scene.control.Control type
The Skin
java.scene.control.Skin
java.scene.control.Skinnable
The Behaviour
com.sun.javafx.scene.control.Behavior
10/15/2011 XeNoNiQUe.co.uk (c) 2011 37
![Page 38: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/38.jpg)
Control based contd
See JFXtras.org for more examples of
skinnable components written for
JavaFX 2.0 beta 45
A Skin can be a Region (?)
com.sun.javafx.scene.control.BehaviorBase
com.sun.javafx.scene.control.SkinBase
10/15/2011 XeNoNiQUe.co.uk (c) 2011 38
![Page 39: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/39.jpg)
Layout Children Method
void layoutChildren()
Layout all of the children of a Region
based component
10/15/2011 XeNoNiQUe.co.uk (c) 2011 39
![Page 40: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/40.jpg)
Layout Children Method
void layoutChildren()
Layout all of the children of a Region based component
Compute the preferred width and height of the children (first)
May cache those values internally as part of the component or use Constraints
10/15/2011 XeNoNiQUe.co.uk (c) 2011 40
![Page 41: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/41.jpg)
Layout Boundaries
SDK will make a request to find out the
best width and height of your
component.
Your component must do the same for
its children
Implement at least compute pref width
and pref height methods!
10/15/2011 XeNoNiQUe.co.uk (c) 2011 41
![Page 42: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/42.jpg)
Layout Methods
10/15/2011 XeNoNiQUe.co.uk (c) 2011 42
![Page 43: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/43.jpg)
Pedantic Complete
Implement the other four methods too
computeMinWidth(v)
computeMinHeight(v)
computeMaxWidth(v)
computeMaxHeight(v)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 43
![Page 44: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/44.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 44
Demo
![Page 45: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/45.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 45
Writing JavaFX
Containers
![Page 46: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/46.jpg)
Event Input on Node
Mouse Events fall under the pointer
iteraction (single)
Clicked, Entered, Exited, Pressed, Dragged,
Released, Wheel
Target Entered, Target Exited
Key Events
Clicked, Pressed, Released
10/15/2011 XeNoNiQUe.co.uk (c) 2011 46
![Page 47: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/47.jpg)
Event Input on Node
It is possible to consume an event and
stop it bubbling further down the
scenegraph hierarchy
You can block a component from event
interaction
Using clever tricks (opaque shape) you
can implement dialog / focus / modal
behaviour
10/15/2011 XeNoNiQUe.co.uk (c) 2011 47
![Page 48: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/48.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 48
Layout Secrets
![Page 49: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/49.jpg)
Reuse SDK Methods
10/15/2011 XeNoNiQUe.co.uk (c) 2011 49
![Page 50: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/50.jpg)
Some SDK Methods
Region#layoutInArea()
Region#positionInArea()
Node#resize()
Node#resizeRelocate()
10/15/2011 XeNoNiQUe.co.uk (c) 2011 50
![Page 51: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/51.jpg)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 51
Demo
![Page 52: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/52.jpg)
Tips
When Dragging a Node prefer to
translate (X,Y)
When Laying Out a Node prefer to set
the position with layoutX, layoutY
Given steady state conditions you can
swap layout (X,Y) for translation (X,Y)
10/15/2011 XeNoNiQUe.co.uk (c) 2011 52
![Page 53: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/53.jpg)
Tips 2
Use blocking boolean flags to prevent
conflict when you animating children in a
container
If you are unsure about MT concurrency
you can always use AtomicBoolean
Prefer JavaFX Properties
10/15/2011 XeNoNiQUe.co.uk (c) 2011 53
![Page 54: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/54.jpg)
Tools
10/15/2011 XeNoNiQUe.co.uk (c) 2011 54
![Page 55: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/55.jpg)
Tools
We badly need a JavaFX Property plug-
in for various IDE
Otherwise the Groovy script will do for
now
Scene Builder is coming
FXML is always
10/15/2011 XeNoNiQUe.co.uk (c) 2011 55
![Page 56: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/56.jpg)
Alternative JVM Languages
Still new to comment on the best
practice for writing component in other
languages other than Java
Consider using a Java interface
Prefer to use and expose JavaFX
Properties
Learn JavaFX against Java, First!
10/15/2011 XeNoNiQUe.co.uk (c) 2011 56
![Page 57: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/57.jpg)
Six Months, 2012 … Okay!
10/15/2011 XeNoNiQUe.co.uk (c) 2011 57
![Page 58: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/58.jpg)
Design
Think of JavaFX as a sophisticated
composition engine
á la PhotoShop without the pixel access
Learn U/I/X design from elsewhere
10/15/2011 XeNoNiQUe.co.uk (c) 2011 58
![Page 59: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/59.jpg)
Boagworld.com
10/15/2011 59 XeNoNiQUe.co.uk (c) 2011
![Page 60: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/60.jpg)
Books
10/15/2011 60 XeNoNiQUe.co.uk (c) 2011
![Page 61: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/61.jpg)
End Game
10/15/2011 XeNoNiQUe.co.uk (c) 2011 61
![Page 62: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/62.jpg)
Blow your toe off now!
10/15/2011 XeNoNiQUe.co.uk (c) 2011 62
![Page 63: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/63.jpg)
However, we are behind the
wave! Let us learn from the web
technologists and the mobile
app leaders and ran past them!
10/15/2011 XeNoNiQUe.co.uk (c) 2011 63
![Page 64: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/64.jpg)
Test JavaFX 2.0 User
Interface against your target
users BEFORE and AFTER
10/15/2011 XeNoNiQUe.co.uk (c) 2011 64
![Page 65: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/65.jpg)
Learn more
10/15/2011 XeNoNiQUe.co.uk (c) 2011 65
http://xenonique.co.uk/blog/
http://javafx.com/
twitter:peter_pilgrim
![Page 66: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/66.jpg)
Professional Services
10/15/2011 XeNoNiQUe.co.uk (c) 2011 66
JavaFX 2.0 in Enterprises
Contracting
Training with Consultancy
Technical Leadership
![Page 67: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/67.jpg)
Can I have a HIRES JavaFX logo
please?
A work in Progress
Source Code to be added
Demos to be completed in September
10/15/2011 XeNoNiQUe.co.uk (c) 2011 67
![Page 68: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/68.jpg)
Attributions
All images are Creative Commons (CC) License from Flickr.com
– “You must attribute the source and you cannot change the content”
Tim Ellis http://www.flickr.com/photos/tim_ellis/
Lego Basics http://www.flickr.com/photos/tim_ellis/338755101/sizes/l/
*PaysImaginaire* http://www.flickr.com/photos/nevrlndtink/
Variable Plastic Bag http://www.flickr.com/photos/nevrlndtink/232906118/sizes/m/
~Deiby http://www.flickr.com/photos/deiby/
Expression http://www.flickr.com/photos/deiby/5489382677/sizes/l/
Lisa Sinclair http://www.flickr.com/photos/plumandjello/
fruit http://www.flickr.com/photos/plumandjello/2333263539/sizes/l/
Nerovivo http://www.flickr.com/photos/dominik99/
http://www.flickr.com/photos/dominik99/407716865/sizes/z/in/photostream/
10/15/2011 XeNoNiQUe.co.uk (c) 2011 68
![Page 69: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/69.jpg)
Attributions
All images are Creative Commons (CC) License from Flickr.com
– “You must attribute the source and you cannot change the content”
.Guilty http://www.flickr.com/photos/roll_initiative/
Arbitrary Function Generator http://www.flickr.com/photos/roll_initiative/3278642272/
Loop Oh Rupert Grazer http://www.flickr.com/photos/loop_oh/
Pattern at the Senckenberg Museum in Frankfurt am Main / Germany.
http://www.flickr.com/photos/loop_oh/4571485915/
Lili Vieira de Carvalho, Vancouver, Canada http://www.flickr.com/people/lilivc/
Composition of Bowls http://www.flickr.com/photos/lilivc/367582911/sizes/l/
Mykl Roventine http://www.flickr.com/people/myklroventine/
19/365 Game Over http://www.flickr.com/photos/myklroventine/3210068573/sizes/l/
superciliousness / Bentley Smith http://www.flickr.com/people/superciliousness/
200510 carpenter's tools - inside the workman's shed - all his old tools
http://www.flickr.com/photos/superciliousness/57486288/
10/15/2011 XeNoNiQUe.co.uk (c) 2011 69
![Page 70: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/70.jpg)
Attributions
All images are Creative Commons (CC) License from Flickr.com
– “You must attribute the source and you cannot change the content”
You’ve got a fast car http://www.flickr.com/photos/coreforce/5910961411/
Core Force http://www.flickr.com/photos/coreforce/
GAME AT MARBLES http://www.flickr.com/photos/9619972@N08/928099769/sizes/l/in/photostream/
(Author unknown, from an antique children's boo
Lucs Game http://www.flickr.com/photos/9619972@N08/928099769/
just.Luc http://www.flickr.com/people/9619972@N08/
DIY Easel http://www.flickr.com/photos/68888883@N00/2744696593/in/photostream/
Judy of the Woods http://www.flickr.com/people/68888883@N00/
10/15/2011 XeNoNiQUe.co.uk (c) 2011 70
![Page 71: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/71.jpg)
Beyond Java Today
10/15/2011 71 XeNoNiQUe.co.uk (c) 2011
![Page 72: JavaOne 2011 Progressive JavaFX 2.0 Custom Components](https://reader033.vdocument.in/reader033/viewer/2022052307/555e28d4d8b42a6a4c8b5085/html5/thumbnails/72.jpg)
Beyond Java Future 2016?
10/15/2011 72 XeNoNiQUe.co.uk (c) 2011