Java SE 8 Standard-Bibliothek  
Professionelle Bücher. Auch für Einsteiger.
 
Inhaltsverzeichnis

Vorwort
1 Neues in Java 8 und Java 7
2 Fortgeschrittene String-Verarbeitung
3 Threads und nebenläufige Programmierung
4 Datenstrukturen und Algorithmen
5 Raum und Zeit
6 Dateien, Verzeichnisse und Dateizugriffe
7 Datenströme
8 Die eXtensible Markup Language (XML)
9 Dateiformate
10 Grafische Oberflächen mit Swing
11 Grafikprogrammierung
12 JavaFX
13 Netzwerkprogrammierung
14 Verteilte Programmierung mit RMI
15 RESTful und SOAP-Web-Services
16 Technologien für die Infrastruktur
17 Typen, Reflection und Annotationen
18 Dynamische Übersetzung und Skriptsprachen
19 Logging und Monitoring
20 Sicherheitskonzepte
21 Datenbankmanagement mit JDBC
22 Java Native Interface (JNI)
23 Dienstprogramme für die Java-Umgebung
Stichwortverzeichnis

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java SE 8 Standard-Bibliothek von Christian Ullenboom
Das Handbuch für Java-Entwickler
Buch: Java SE 8 Standard-Bibliothek

Java SE 8 Standard-Bibliothek
Pfeil 12 JavaFX
Pfeil 12.1 Das erste Programm mit JavaFX
Pfeil 12.2 Zentrale Typen in JavaFX
Pfeil 12.2.1 Szenegraph-Knoten und Container-Typen
Pfeil 12.2.2 Datenstrukturen
Pfeil 12.3 JavaFX-Komponenten und Layout-Container-Klassen
Pfeil 12.3.1 Überblick über die Komponenten
Pfeil 12.3.2 Listener/Handler zur Ereignisbeobachtung
Pfeil 12.3.3 Panels mit speziellen Layouts
Pfeil 12.4 Webbrowser
Pfeil 12.5 Geometrische Objekte
Pfeil 12.5.1 Linien und Rechtecke
Pfeil 12.5.2 Kreise, Ellipsen, Kreisförmiges
Pfeil 12.5.3 Es werde kurvig – quadratische und kubische Splines
Pfeil 12.5.4 Pfade *
Pfeil 12.5.5 Polygone und Polylines
Pfeil 12.5.6 Beschriftungen, Texte, Fonts
Pfeil 12.5.7 Die Oberklasse Shape
Pfeil 12.6 Füllart von Formen
Pfeil 12.6.1 Farben mit der Klasse Color
Pfeil 12.7 Grafiken
Pfeil 12.7.1 Klasse Image
Pfeil 12.7.2 ImageView
Pfeil 12.7.3 Programm-Icon/Fenster-Icon setzen
Pfeil 12.7.4 Zugriff auf die Pixel und neue Pixel-Bilder *
Pfeil 12.8 Deklarative Oberflächen mit FXML
Pfeil 12.9 Diagramme (Charts)
Pfeil 12.9.1 Kuchendiagramm
Pfeil 12.9.2 Balkendiagramm
Pfeil 12.10 Animationen
Pfeil 12.10.1 FadeTransition
Pfeil 12.10.2 ScaleTransition
Pfeil 12.10.3 Transitionen parallel oder sequenziell durchführen
Pfeil 12.11 Medien abspielen
Pfeil 12.12 Das Geometry-Paket *
Pfeil 12.13 JavaFX-Scene in Swing-Applikationen einbetten
Pfeil 12.14 Zum Weiterlesen
 
Zum Seitenanfang

12.10Animationen Zur vorigen ÜberschriftZur nächsten Überschrift

Grafische Programme müssen sich in AWT oder Swing selbst um Animationen kümmern, etwa indem sie einen Timer-Thread starten und dann ein Neuzeichnen (Repaint) motivieren. In der Zeichenroutine müssen sich die Komponenten dann selbst bewegen, ausblenden – oder was auch immer die Animation fordert.

JavaFX bringt Animationsunterstützung mit und unterstützt Entwickler in dem Trend, dass moderne grafische Oberflächen heutzutage nicht einfach Komponenten irgendwo hinsetzen oder sie verschwinden lassen, sondern den Betrachter subtil über Veränderungen informieren.

Bei Animationen werden Eigenschaften wie Farbe, Transparenz oder Position verändert. Ein zentraler Unterschied ist nur, ob eine Animation etwa eine Bewegung automatisch vornimmt oder ob wir selbst die Koordinaten für eine Bewegung von Hand setzen. Daher unterscheidet JavaFX zwei Typen von Animationen:

  • Übergangsanimationen (Transitions): Dazu zählen automatische Animationen, wie das Ausblenden, die Skalierung oder die Bewegung entlang eines Pfades. Es ist lediglich der Start- und Endzustand anzugeben, und den Rest regelt JavaFX automatisch. Die Transitionen können auch kombiniert werden, etwa sequenziell hintereinander oder parallel gepaart werden.

  • Zeitleistenanimationen (Timeline): Bei den Transitions geschieht innerhalb einer gewissen Zeit eine Animation, aber es ist nicht offensichtlich, bei welchem Zeitpunkt welche Koordinate oder welcher Zustand modifiziert wird. Das ist bei den Timeline-Animationen anders. Hier stehen die Zeitpunkte im Mittelpunkt, an denen etwas passiert. Innerhalb dieser Zeitleiste arbeitet das System Key-Frames ab. Zwischen dem Start-Key-Frame und dem End-Key-Frame können wir Properties verändern (den KeyValue setzen) oder uns Ticks, also Events, generieren lassen, an denen wir selbst individuell Eigenschaften ändern können.

 
Zum Seitenanfang

12.10.1FadeTransition Zur vorigen ÜberschriftZur nächsten Überschrift

Zum Ausblenden von Knoten dient die FadeTransition. Die zentralen Parameter sind Dauer, Starttransparenz, Endtransparenz oder das Ein-/Ausblenden, das zyklisch ist. Das nächste Beispiel zeigt, wie der Klick auf die Schaltfläche diese verschwinden lässt:

Listing 12.17com/tutego/insel/javafx/FadeTransitionDemo.java, start()

@Override
public void start( Stage stage ) {
final Button b = new Button( "Klick mich" );
b.setOnAction( new EventHandler<ActionEvent>() {
@Override public void handle( ActionEvent e ) {
FadeTransition t = new FadeTransition( Duration.seconds( 0.5 ), b );
t.setFromValue( 1.0f );
t.setToValue( 0.0f );
t.play();
}
} );
stage.setScene( new Scene( new Group( b ) ) );
stage.show();
}

Die Vorbelegung der From/To-Werte ist 1, sodass setFromValue(1.0f) unnötig ist.

Wer einen Effekt mit »aus- und dann wieder einblenden« wünscht, also von Animation A1 auf eine A2 gehen möchte und zurück, also A1 R A2 R A1, der kann die Zeilen

t.setCycleCount( 2 );
t.setAutoReverse( true );

mit aufnehmen. Dann gibt es zwei Animationen, bei denen nach dem ersten Ablauf JavaFX die zweite Animation von hinten nach vorne abspielt. Soll endlos animiert werden, ist ein Aufruf von setCycleCount(Timeline.INDEFINITE) möglich.

 
Zum Seitenanfang

12.10.2ScaleTransition Zur vorigen ÜberschriftZur nächsten Überschrift

Die ScaleTransition skaliert ein Objekt in der x/y-Achse. Werte kleiner 1 lassen es schrumpfen, und Werte größer 1 blasen es auf. Unser nächstes Beispiel zeigt, wie eine Schaltfläche innerhalb von 2 Sekunden auf das Doppelte in der Horizontalen und gegen null auf der Vertikalen skaliert wird:

Listing 12.18com/tutego/insel/javafx/ScaleTransitionDemo.java, start()

@Override
public void start( Stage stage ) {
final Button button = new Button( "Klick mich" );
button.setOnAction( new EventHandler<ActionEvent>() {
@Override public void handle( ActionEvent e ) {
ScaleTransition t = new ScaleTransition( Duration.seconds( 2 ), button );
t.setFromX( 1 );
t.setFromY( 1 );
t.setToX( 2 );
t.setToY( 0 );
t.play();
}
} );

stage.setScene( new Scene( new VBox( new Label("Vor"), button, new Label("Nach") ) ) );
stage.show();
}

Standardmäßig stehen auch hier die Werte auf 1, sodass wir uns setFromX(1) und setFromY(1) hätten sparen können.

 
Zum Seitenanfang

12.10.3Transitionen parallel oder sequenziell durchführen Zur vorigen ÜberschriftZur nächsten Überschrift

Transitionen lassen sich zu Folgen verbinden, wobei zu unterscheiden ist, ob JavaFX die Transitionen parallel oder sequenziell abarbeitet. Dazu wird ein Objekt vom Typ ParallelTransition oder SequentialTransition aufgebaut, und dem Container werden dann Transitionen als Kinder zugewiesen.

Unser nächstes Beispiel blendet die Schaltfläche aus und lässt gleichzeitig die y-Achse auf 0 schrumpfen:

Listing 12.19com/tutego/insel/javafx/ParallelTransitionDemo.java, start()

@Override
public void start( Stage stage ) {
final Button b = new Button( "Klick mich" );
b.setOnAction( new EventHandler<ActionEvent>() {
@Override public void handle( ActionEvent e ) {
ScaleTransition t1 = new ScaleTransition( Duration.seconds( 2 ), b );
t1.setToY( 0 );

FadeTransition t2 = new FadeTransition( Duration.seconds( 2 ), b );
t2.setToValue( 0.0f );

ParallelTransition parallelTransition = new ParallelTransition();
parallelTransition.getChildren().addAll( t1, t2 );
parallelTransition.play();
}
} );
stage.setScene( new Scene( b ) );
stage.show();
}

 


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java SE 8 Standard-Bibliothek Java SE 8 Standard-Bibliothek
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel
Java ist auch eine Insel


Zum Rheinwerk-Shop: Professionell entwickeln mit Java EE 8
Professionell entwickeln mit Java EE 8


Zum Rheinwerk-Shop: Besser coden
Besser coden


Zum Rheinwerk-Shop: Entwurfsmuster
Entwurfsmuster


Zum Rheinwerk-Shop: IT-Projektmanagement
IT-Projektmanagement


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2018. Original - https://www.rheinwerk-verlag.de/openbook/
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 

 
 


29.03.2024 - Sitemap.xml