Home >Software >Desktop wiederentdeckt? - Moderne Anwendungen mit JavaFX
Desktop wiederentdeckt? - Moderne Anwendungen mit JavaFX
Date post:29-Nov-2014
Category:Software
View:123 times
Download:1 times
Share this document with a friend
Description:
Der Vortrag skizziert kurz die Geschichte von JavaFX, zeigt dann aber recht schnell die Vorgehensweisen beim Bau von JavaFX-Anwendungen auf. Hierbei steht die Frage im Mittelpunkt, welche Mittel JavaFX zur Verfgung stellt und wie diese Bausteine zu einem sinnvollen Ganzen verbunden werden. Dabei werden die Vorgehensweisen in Swing und JavaFX einander gegenbergestellt. MATHEMA Campus 2012, Freitag 24. Februar 2012 14:00 bis 15:15
Transcript:
<ul><li> 1. Thomas Knneth 1 Copyright 2012 MATHEMA Software GmbH Desktop wiederentdeckt? Moderne Anwendungen mit JavaFX Thomas Knneth kuennetht@googlemail.com http://kuennetht.blogspot.com/ </li> <li> 2. Thomas Knneth 2 Copyright 2012 MATHEMA Software GmbH Zur Person Arbeitgeber: Bundesagentur fr Arbeit Vorgaben, Richtlinien und Best Practices zur Softwarearchitektur von Eigenentwicklungen und Kaufprodukten Untersttzung bei der Fortentwicklung der Gesamtarchitektur privat: Autor von Fachbchern und artikeln zu Java, Eclipse und Android Gadget Junkie Old-School-Gaming </li> <li> 3. Thomas Knneth 3 Copyright 2012 MATHEMA Software GmbH Werbung (Was ist JavaFX?) the premier platform for rich enterprise client applications the next step in the evolution of Java as a rich client platform designed to provide a modern Java environment that shortens the development time and eases the deployment of data driven business and enterprise client applications enables application developers to easily create and deploy Rich Internet Applications that behave consistently across multiple platforms http://www.oracle.com/technetwork/java/javafx/overview/javafx-2-datasheet-496523.pdf </li> <li> 4. Thomas Knneth 4 Copyright 2012 MATHEMA Software GmbH Was bedeutet das? JavaFX ist ein Technologiestapel fr den Bau von Benutzeroberflchen Soll moderne Programmierschnittstellen bieten Oberflchen sollen sich schnell umsetzen lassen Oberflchen sollen sexy aussehen Soll zeitgeme multimediale Fhigkeiten haben </li> <li> 5. Thomas Knneth 5 Copyright 2012 MATHEMA Software GmbH Java? Oberflchen? Da war doch was...? JavaFX ist offiziell der Nachfolger von Swing Swing bleibt aber weiterhin Teil der Java SE Runtime Swing- und JavaFX-Komponenten knnen in Anwendungen gemischt werden Derzeit ist JavaFX kein integraler Bestandteil der Java Plattform. Dies soll sich mit Java 8 ndern. </li> <li> 6. Thomas Knneth 6 Copyright 2012 MATHEMA Software GmbH Oracle hat JavaFX also im Griff Aber: Stabile Sicht war nicht immer vorhanden Lange Zeit viel Slide-Ware Geschichte von JavaFX hat viele unerwartete Wendungen </li> <li> 7. Thomas Knneth 7 Copyright 2012 MATHEMA Software GmbH Agenda Ein Blick in die Geschichtsbcher Wie lange gibt es JavaFX schon? Wie hat es sich entwickelt? Anatomie einer JavaFX-Anwendung Struktur und Inhalt einer einfachen Anwendung hnlichkeiten mit und Unterschiede zu Swing Glaskugel Hat JavaFX eine Chance? Wie hlt es Oracle mit seinem neuen Liebling? </li> <li> 8. Thomas Knneth 8 Copyright 2012 MATHEMA Software GmbH Agenda Ein Blick in die Geschichtsbcher Anatomie einer JavaFX-Anwendung Glaskugel </li> <li> 9. Thomas Knneth 9 Copyright 2012 MATHEMA Software GmbH Schauspiel in mehreren Akten: 2007 JavaOne 2007: Sun kndigt JavaFX, JavaFX Script und JavaFX Mobile an Idee: mit der Programmiersprache JavaFX Script und bestimmten weiteren Tools grafisch opulente Anwendungen fr unterschiedliche Gertekategorien entwickeln. Nicht mehr nur Programmierer, sondern Designer sollen UIs gestalten 2007: starker Fokus auf Mobility (Smartphones treten ihren Siegeszug an) </li> <li> 10. Thomas Knneth 10 Copyright 2012 MATHEMA Software GmbH 2008 JavaOne 2008: Sun nennt drei JavaFX-Profile: JavaFX Mobile, JavaFX Desktop und JavaFX TV Juli 2008: Developer Previews des JavaFX SDKs fr Windows und Macintosh sowie ein Plugin fr NetBeans Verffentlichung von JavaFX (Desktop) 1.0 am 4. Dezember 2008 </li> <li> 11. Thomas Knneth 11 Copyright 2012 MATHEMA Software GmbH 2009 JavaFX Mobile wird als Teil von JavaFX 1.1 verffentlicht Es folgen mehrere Updates des JavaFX 1.x-Releases die letzte 1er Version ist JavaFX 1.3.1 (August 2010) </li> <li> 12. Thomas Knneth 12 Copyright 2012 MATHEMA Software GmbH JavaFX Mobile War als Plattform fr mobile Gerte gedacht Sun hatte die Rechte an SavaJe, einem Java-basierten Betriebssystem, bernommen spter eher Aufsatz auf bestehende Plattformen Apps sollten mit der Programmiersprache JavaFX Script geschrieben werden </li> <li> 13. Thomas Knneth 13 Copyright 2012 MATHEMA Software GmbH JavaFX Script eine bersetzte, statisch typisierte, deklarative Programmiersprache luft in der JVM kam als F3 (Form follows Function) mit der bernahme von Chris Oliver und SeeBeyond im September 2005 in den Besitz von Sun Wurde 2007 open source </li> <li> 14. Thomas Knneth 14 Copyright 2012 MATHEMA Software GmbH JavaFX Script-Demo import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.text.Text; import javafx.scene.text.Font; Stage { title: "Hello World" width: 250 height: 80 scene: Scene { content: Text { font : Font { size : 24 } x: 10, y: 30 content: "Hello World" } } } </li> <li> 15. Thomas Knneth 15 Copyright 2012 MATHEMA Software GmbH Vision von JavaFX 1.x sthetische, plattformbergreifende Anwendungen Erschlieung neuer Entwicklerschichten durch leichtgewichtige JavaScript-artige Programmiersprache Fokus mehr auf Design als auf Programmierung JavaFX Production Suite als Brcke zu Designerwerkzeugen Silverlight und Flash/Flex als Vorbilder und Konkurrenten </li> <li> 16. Thomas Knneth 16 Copyright 2012 MATHEMA Software GmbH Wandel September 2010: JavaFX Script wird abgekndigt und JavaFX 2.0 angekndigt Ende 2011: Verfgbarkeit von JavaFX 2.0 fr Windows und Preview fr Mac JavaFX soll quelloffen und perspektivisch durch die Community weiterentwickelt werden fundamental: JavaFX enthlt Java-API </li> <li> 17. Thomas Knneth 17 Copyright 2012 MATHEMA Software GmbH Agenda Ein Blick in die Geschichtsbcher Anatomie einer JavaFX-Anwendung Glaskugel </li> <li> 18. Thomas Knneth 18 Copyright 2012 MATHEMA Software GmbH Voraussetzungen Nutzung Java SE 6 oder 7 JavaFX 2.0 Runtime Entwicklung ein entsprechendes JDK JavaFX 2.0 SDK Untersttzung in IDEs (optional) Eclipse: e(fx)clipse (http://efxclipse.org/) NetBeans 7.1: "out of the box" </li> <li> 19. Thomas Knneth 19 Copyright 2012 MATHEMA Software GmbH Setup (am Beispiel von Eclipse) </li> <li> 20. Thomas Knneth 20 Copyright 2012 MATHEMA Software GmbH Hallo Welt public class HalloWelt extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("Hallo Welt"); Group group = new Group(); Scene scene = new Scene(group); // anzuzeigender Text... Text text = new Text("Hallo Welt!"); text.setTextOrigin(VPos.TOP); // Font text.setFont(new Font(72)); // anzeigen group.getChildren().add(text); primaryStage.setScene(scene); primaryStage.show(); } } </li> <li> 21. Thomas Knneth 21 Copyright 2012 MATHEMA Software GmbH Minimalstruktur einer Anwendung leitet von javafx.application.Application ab berschreibt die Methode start() main()-Methode ruft launch() auf ...aber was sind Stage, Group und Scene? </li> <li> 22. Thomas Knneth 22 Copyright 2012 MATHEMA Software GmbH Stage Die Stage ist der Top Level-Container einer Anwendung Sie enthlt eine oder mehrere Scenes Eine Scene bildet die Zeichenoberflche fr den Inhalt einer Anwendung (die Benutzeroberflche bzw. einen Teil davon) Die so genannte primary stage wird durch die Plattform erzeugt Das Enum javafx.stage.StageStyle steuert in Teilen das Aussehen (transparent, ) Fensterstatus (minimiert, Vollbild) werden ber setter gesteuert </li> <li> 23. Thomas Knneth 23 Copyright 2012 MATHEMA Software GmbH Scene Die Scene ist ein Container fr alle Elemente eines so genannten Scene Graphs Sie legt fest, was wann wo wie angezeigt wird Eine Anwendung kann viele Scenes enthalten </li> <li> 24. Thomas Knneth 24 Copyright 2012 MATHEMA Software GmbH Scene Graph Der Scene Graph ist eine Baumstruktur JavaFX hlt ein internes Modell aller grafischen Objekte einer Anwendung Zu jeder Zeit ist bekannt, welche Objekte angezeigt werden mssen welche Bereiche neu gezeichnet werden mssen wie Objekte am effizientesten gerendert werden </li> <li> 25. Thomas Knneth 25 Copyright 2012 MATHEMA Software GmbH Elemente des Scene Graphs Elemente des Scene Graphs heien nodes nodes sind entweder branches oder leafs Der erste node wird root node genannt - er hat keinen Elternknoten </li> <li> 26. Thomas Knneth 26 Copyright 2012 MATHEMA Software GmbH Beispiele fr nodes JavaFX kennt eine ganze Reihe von Klassen, die als nodes fungieren. und viele mehr </li> <li> 27. Thomas Knneth 27 Copyright 2012 MATHEMA Software GmbH Evolution // Effekt text.setEffect(new Reflection()); // Linie text.setStrokeType(StrokeType.OUTSIDE); text.setStroke(Color.BLUE); text.setStrokeWidth(2); // Fllung text.setFill(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")), })); </li> <li> 28. Thomas Knneth 28 Copyright 2012 MATHEMA Software GmbH Na und? Die angedeuteten grafischen Objekte sind natrlich auch mit Java2D und Swing mglich Der Unterschied zum klassischen Komponentenkonzept von AWT und Swing ist unter anderem dass der Scene Graph zu jedem Zeitpunkt wei, wann was wie gezeichnet werden muss, in AWT bzw. Swing Komponenten aber nur sich selbst kennen es in AWT/Swing keine Plattform-Konzepte fr bergnge oder Animationen gibt </li> <li> 29. Thomas Knneth 29 Copyright 2012 MATHEMA Software GmbH Schn und gut, aber Eye Candy allein macht keine moderne Anwendung JavaFX bietet deshalb eine ganze Reihe von Standard-Controls ...und hat in 2.0 deutlich zugelegt </li> <li> 30. Thomas Knneth 30 Copyright 2012 MATHEMA Software GmbH ...wie war das nochmal...? </li> <li> 31. Thomas Knneth 31 Copyright 2012 MATHEMA Software GmbH Architektur von Swing-Anwendungen Benutzeroberflche wird durch Komponentenbume definiert Position und Gre von Komponenten wird von Layout Managern gesteuert Manipulationen von Komponenten finden in einem speziellen Thread (EDT) statt Anwendungsaktivitten (u. a. Serviceaufrufe) werden unter Nutzung von SwingWorker in eigene Threads ausgelagert Kommunikation zwischen Komponenten durch Nachrichtenaustausch </li> <li> 32. Thomas Knneth 32 Copyright 2012 MATHEMA Software GmbH Aussehen von Swing-Anwendungen wird durch das verwendete Look and Feel bestimmt von der Fhigkeit der Entwickler, Komponenten mit geeigneten Layout Managern positionieren zu lassen viele sthetische Eigenschaften (Ausrichtung an der Grundlinie) hat Swing erst im Laufe der Zeit gelernt </li> <li> 33....</li></ul>
Embed Size (px)
Recommended