javafx - jetzt nun doch oder besser nicht?
DESCRIPTION
Und ewig grüßt das Murmeltier: Zum wiederholten Male tritt JavaFX an, die Java-UI-Welt zu (r)evolutionieren. Würde nicht Oracle mit seiner geballten Macht dahinter stehen, könnte man diese Ankündigung getrost ignorieren – aber so? Die Session zeigt die neuen Ansätze von JavaFX 2 und warum es doch zu einem Erfolg werden könnte. Und das auf (fast) allen Plattformen – Desktop, Web und Mobile.Speaker: Lars RöwekampTRANSCRIPT
![Page 1: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/1.jpg)
JavaFx 2.0
@mobileLarson @_openKnowledge
Lars Röwekamp | open knowledge GmbH
![Page 2: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/2.jpg)
775
Java UI Welt ist noch in gewohnter Ordnung (Swing, SWT)
JavaFX 1.0: Launch
JavaOne: Erste JavaFX Ankünding (a.k.a. F3)
JavaOne: Zweite JavaFX Ankünding
2006 2007 2008 2009 2010
JavaOne: JavaFX 1.2 Launch
Preview SDK
Mobile a.k.a. JavaFX 1.1
Mobile Runtine (WM)
JavaFX 1.3: Preview
JavaFx History
![Page 3: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/3.jpg)
775
Java UI Welt ist noch in gewohnter Ordnung (Swing, SWT)
JavaFX 1.0: Launch
JavaOne: Erste JavaFX Ankünding (a.k.a. F3)
JavaOne: Zweite JavaFX Ankünding
2006 2007 2008 2009 2010
JavaOne: JavaFX 1.2 Launch
Preview SDK
Mobile a.k.a. JavaFX 1.1
Mobile Runtine (WM)
JavaFX 1.3: Preview
JavaFx History
![Page 4: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/4.jpg)
775
JavaFx 2.0
![Page 5: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/5.jpg)
775
JavaFx 2.0JavaFX 2.0 is the next step in the evolution of Java as a rich client platform. It is designed to provide a modern Java environment that shortens the development time and eases the deployment of data driven business and enterprise client applications. Starting with version 2.0, JavaFX applications are completely developed in Java, which has become ubiquitous with over 9 million developers worldwide.
![Page 6: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/6.jpg)
775
JavaFX 2.0 is the next step in the evolution of Java as a rich client platform. It is designed to provide a modern Java environment that shortens the development time and eases the deployment of data driven business and enterprise client applications. Starting with version 2.0, JavaFX applications are completely developed in Java, which has become ubiquitous with over 9 million developers worldwide.
JavaFx 2.0
![Page 7: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/7.jpg)
775
?
![Page 8: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/8.jpg)
775
JavaFxTooling
UI DesignHot
`r N
ot
?
![Page 9: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/9.jpg)
775
JavaFxTooling
UI DesignHot
`r N
ot
?
![Page 10: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/10.jpg)
775
Demo(s)
![Page 11: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/11.jpg)
775
JavaFx 2.0
![Page 12: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/12.jpg)
775
![Page 13: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/13.jpg)
775
JavaFx 2.0
![Page 14: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/14.jpg)
775
(Quelle: fxexperience)
JavaFx 2.0
![Page 15: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/15.jpg)
775
JavaFx 2.0
![Page 16: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/16.jpg)
775
JavaFx 2.0
![Page 17: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/17.jpg)
775
JavaFx 2.0
![Page 18: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/18.jpg)
775
> Java API for JavaFX> Built-in UI Controls & Charts> Graphic Engine> Media Engine> Web Engine> „kind of“ Open Source
JavaFx 2.0
![Page 19: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/19.jpg)
775
JavaFx 2.0
![Page 20: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/20.jpg)
775
Kickstart
![Page 21: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/21.jpg)
775
Kickstart
![Page 22: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/22.jpg)
775
Kickstart
![Page 23: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/23.jpg)
775
> JavaFX Application> Stages & Scenes > Groups & Nodes> Effects & Animations
Kickstart
![Page 24: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/24.jpg)
775
// CREATE AN APPLICATION public class ColorfulCircles extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { primaryStage.show(); } }
Kickstart
![Page 25: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/25.jpg)
775
Kickstart
![Page 26: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/26.jpg)
775
// ADD A SCENE public class ColorfulCircles extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primarystage) { Group root = new Group(); Scene scene = new Scene(root, 800, 600, Color.BLACK); primaryStage.setScene(scene); primaryStage.show(); } }
Kickstart
![Page 27: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/27.jpg)
775
Kickstart
![Page 28: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/28.jpg)
775
// ADD SOME GRAPHICS @Override public void start(Stage primarystage) { ... // scene with root already set // add 30 circles Group circles = new Group(); for (int i = 0; i < 30; i++) { Circle circle = new Circle(150, Color.web("white",0.05)); circle.setStrokeType(StrokeType.OUTSIDE); circle.setStroke(Color.web("white", 0.16)); circle.setStrokeWidth(4); circles.getChildren().add(circle); } root.getChrildren().add(circles); primaryStage.show(); }
Kickstart
![Page 29: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/29.jpg)
775
Kickstart
![Page 30: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/30.jpg)
775
// ADD VISUAL EFFECTS @Override public void start(Stage primarystage) {
... Group circles = new Group(); for (int i = 0; i < 30; i++) { ... circles.getChildren().add(circle); } circles.setEffect(new BoxBlur(10, 10, 3));
root.getChrildren().add(circles); primaryStage.show(); }
Kickstart
![Page 31: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/31.jpg)
775
Kickstart
![Page 32: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/32.jpg)
775
// ADD GRADIENT Rectangle colors = new Rectangle(scene.getWidth(), scene.getHeight(), new LinearGradient(0f, 1f, 1f, 0f, true, CycleMethod.NO_CYCLE, new Stop[]{ new Stop(0, Color.web("#f8bd55")), new Stop(0.14, Color.web("#c0fe56")), new Stop(0.28, Color.web("#5dfbc1")), new Stop(0.43, Color.web("#64c2f8")), new Stop(0.57, Color.web("#be4af7")), new Stop(0.71, Color.web("#ed5fc2")), new Stop(0.85, Color.web("#ef504c")), new Stop(1, Color.web("#f2660f")),})); root.getChildren().add(colors);
Kickstart
![Page 33: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/33.jpg)
775
Kickstart
![Page 34: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/34.jpg)
775
Kickstart
![Page 35: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/35.jpg)
775
root.getChildren().add(colors); root.getChildren().add(circles); // APPLY A BLEND MODE Group blendModeGroup = new Group(new Group(new Rectangle(scene.getWidth(), scene.getHeight(),Color.BLACK), circles), colors);
colors.setBlendMode(BlendMode.OVERLAY);
root.getChildren().add(blendModeGroup); primaryStage.show();
Kickstart
![Page 36: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/36.jpg)
775
Kickstart
![Page 37: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/37.jpg)
775
Kickstart
![Page 38: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/38.jpg)
775
// ADD ANIMATION Timeline timeline = new Timeline(); for (Node circle: circles.getChildren()) { timeline.getKeyFrames().addAll( new KeyFrame(Duration.ZERO, // set start pos at 0 new KeyValue(circle.translateXProperty(), random() * 800), new KeyValue(circle.translateYProperty(), random() * 600) ), new KeyFrame(new Duration(40000), // set end pos at 40s new KeyValue(circle.translateXProperty(), random() * 800), new KeyValue(circle.translateYProperty(), random() * 600) ) ); } // play 40s of animation timeline.play();
Kickstart
![Page 39: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/39.jpg)
775
Kickstart
![Page 40: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/40.jpg)
775
JavaFxTooling
UI DesignHot
`r N
ot
?
![Page 41: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/41.jpg)
775
Java
FxTooling
UI DesignHot `r Not
?
![Page 42: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/42.jpg)
775
> 50+ Build-In Controls & Layouts> Model/View-Binding > Event Handling> Drag & Drop Support> Effects & Animations> FXML & CSS 3
UI Design
![Page 43: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/43.jpg)
775
UI Controls
![Page 44: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/44.jpg)
775
> Label ... HTMLEditor ... Charts > extends Node> Animation, Effects, Transformation> Styling via CSS> Integration with Swing ( & SWT)
UI Controls
![Page 45: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/45.jpg)
775
> via Property & Binding Classes> IntegerProperty, DoubleProperty ...
> Bindings, NumberBindings, ...
> via Observable & Listener> Observable, ObservableValue
> Change- & InvalidationListener
> Lists, Maps, Collections
(UI) Binding
![Page 46: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/46.jpg)
775
(UI) Binding
![Page 47: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/47.jpg)
775
(UI) Binding // String binding Label label = new Label(); label.textProperty().bind(new StringBinding() { { bind(dateField.textProperty()); } @Override protected String computeValue() { Date date = format.parse(dateField.getText()); return "You were born " + format.format(date); } });
![Page 48: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/48.jpg)
775
> Drag, Key, Mouse, Scroll ...> EventHandler, EventFilter> Event Delivery Process
> Target Selection
> Route Construction
> Event Capturing
> Event Bubbling
Event Handling
![Page 49: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/49.jpg)
775
> Blend, Bloom, Blur> Shadows, Reflection, Lighting> Translation, Rotation, Scaling> Transition, Timelines, Keyframes> Effect Chains
Effects & Animations
![Page 50: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/50.jpg)
775
Effects & Animations
(Quelle: glyphsoft)
![Page 51: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/51.jpg)
775
> UI Deklaration > XML-based, Scriptable> Controller „Binding“> Action „Binding“> @FXML Annotation
FXML & CSS 3
![Page 52: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/52.jpg)
775
Kickstart II
![Page 53: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/53.jpg)
775
FXML & CSS 3
(Quelle: glyphsoft)
![Page 54: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/54.jpg)
775
FXML & CSS 3
> UI Declaration
![Page 55: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/55.jpg)
775
FXML & CSS 3
> UI Declaration
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.layout.*?> ... <BorderPane xmlns:fx="http://javafx.com/fxml">
<top> ... </top> <center> <GridPane ... > <children> ... </children> </GridPane> </center> </BorderPane>
![Page 56: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/56.jpg)
775
FXML & CSS 3
> Controller & Action Binding
![Page 57: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/57.jpg)
775
FXML & CSS 3
> Controller & Action Binding
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.layout.*?> ... <BorderPane fx:controller="Controller" xmlns:fx="http://javafx.com/fxml"> ... <Button fx:id="submitButton" text="%submit" onAction="#handleSubmitButtonAction"/> ... </BorderPane>
![Page 58: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/58.jpg)
775
FXML & CSS 3
> Scripting Language
![Page 59: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/59.jpg)
775
FXML & CSS 3
> Scripting Language
<?xml version="1.0" encoding="UTF-8"?> <?language javascript?> <?import javafx.scene.layout.*?> ... <BorderPane fx:controller="Controller" xmlns:fx="http://javafx.com/fxml">
<fx:script source="demo.js" /> ...
</BorderPane>
![Page 60: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/60.jpg)
775
FXML & CSS 3
> CSS 3
![Page 61: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/61.jpg)
775
Java
FxTooling
UI DesignHot `r Not
?
![Page 62: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/62.jpg)
775
JavaFxTooling
UI D
esig
n Hot `r Not
?
![Page 63: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/63.jpg)
775
> NetBeans 7.x > Eclipse> IntelliJ Idea
TOOLING
![Page 64: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/64.jpg)
775
> NetBeans 7.x > Eclipse> IntelliJ Idea
TOOLING
> JavaFX SceneBuilder
![Page 65: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/65.jpg)
775
SceneBuilder
![Page 66: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/66.jpg)
775
JavaFxTooling
UI D
esig
n Hot `r Not
?
![Page 67: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/67.jpg)
775
JavaFxTool
ing
UI DesignHot `r Not
?
![Page 68: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/68.jpg)
![Page 69: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/69.jpg)
JavaFx 2.0
![Page 70: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/70.jpg)
775
![Page 71: JavaFX - Jetzt nun doch oder besser nicht?](https://reader034.vdocuments.pub/reader034/viewer/2022042623/54c677054a79593d1c8b45e0/html5/thumbnails/71.jpg)
775
> Improved UI Controls & Charts > Data Service Support> Enhancements to WebView > Modularization> Mulit-Touch & Sensor Support