Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
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.13JavaFX-Scene in Swing-Applikationen einbetten Zur vorigen ÜberschriftZur nächsten Überschrift

Obwohl JavaFX von Swing bzw. AWT vollständig entkoppelt ist, ist es doch nötig, beide Technologien zusammenzuführen. Für die nächste Zeit wird Swing (noch) die bevorzugte Plattform für Client-Applikationen bleiben, aber so wie Oracle im Moment die Richtung vorgibt, gibt es Innovationen ausschließlich in JavaFX und nicht in Swing oder AWT. Schon jetzt sind die Charts oder die Webkomponente aus JavaFX großartig und für Swing-Entwickler eine Bereicherung.

Es ist nicht kompliziert, den Szenengraphen in Swing-Anwendungen einzubetten. Im Mittelpunkt der Integration steht die Swing-Komponente JFXPanel, die einen JavaFX-Szenengraphen aufnehmen kann. Damit ist eigentlich schon alles gesagt:

Listing 12.20com/tutego/insel/javafx/JFXPanelDemo.java

package com.tutego.insel.javafx;

import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.embed.swing.JFXPanel;
import javafx.scene.*;
import javafx.scene.chart.PieChart;
import javax.swing.*;

public class JFXPanelDemo {
public static void main( String[] args ) {
JFrame f = new JFrame();
final JFXPanel fxPanel = new JFXPanel();
f.add( new JScrollPane( fxPanel ) );
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.setBounds( 100, 100, 600, 600 );
f.setVisible( true );

Platform.runLater( new Runnable() {
@Override public void run() {
PieChart chart = new PieChart(
FXCollections.observableArrayList(
new PieChart.Data( "Java", 199 ),
new PieChart.Data( "Rest", 12 ) ) );

fxPanel.setScene( new Scene( chart ) );
}
} );
}
}

Das JFXPanel ist eine Swing-Komponente, die genauso leichtgewichtig ist wie alles andere von Swing auch. Das bedeutet: Das JFXPanel kann anders als AWT-Komponenten problemlos in Swing-Container wie die JScrollPane gesetzt werden, und auch die Transparenz funktioniert tadellos. Wenn also JFXPanel auf »nicht opak« gesetzt wird, scheint der Hintergrund durch. Das erlaubt eine perfekte Integration, die sich auch in der transparenten Ereignisbehandlung widerspiegelt. Ereignisse wie ein Klick auf eine JavaFX-Komponente kommen auch dort an und versanden nicht in Swing.

Ein wenig Mühe allerdings macht das Threading, denn Swing und JavaFX nutzen zwar beide Threads, doch unterschiedliche. Aus Swing ist bekannt, dass nach der Darstellung des Fensters Veränderungen an den Komponenten nur vom EDT (Event Dispatching Thread) erlaubt sind. Um Programmcode von einem Nicht-EDT- – wie dem Thread, der main() ausführt – im EDT-Thread zu platzieren, bietet die Swing-Bibliothek SwingUtilities.invokeLater(Runnable). JavaFX bietet die vergleichbare Methode Platform.runLater(Runnable), um Programmcode vom JavaFX-Thread ausführen zu lassen. Das ist in unserem Beispiel auch nötig, andernfalls wird fxPanel.setScene() aus dem main-Thread ausgeführt, was JavaFX mit einer IllegalStateException »Not on FX application thread; currentThread = main« bestraft. In JavaFX 8 sollten der JavaFX-Thread und der Event-Dispatch-Thread zusammenwachsen, doch ist das nicht standardmäßig aktiviert und muss erst über eine Property aktiviert werden.

 


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
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.

 
Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern