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.2Zentrale Typen in JavaFX Zur vorigen ÜberschriftZur nächsten Überschrift

JavaFX hat ein vielschichtiges Klassenkonzept, und diverse Muster finden sich dort wieder.

 
Zum Seitenanfang

12.2.1Szenegraph-Knoten und Container-Typen Zur vorigen ÜberschriftZur nächsten Überschrift

Die wichtigsten Klassen aus dem Paket javafx.scene sind folgende:

  • Eine zentrale Oberklasse in JavaFX ist Node. Jeder Knoten und jedes Element im Szenegraphen ist ein Untertyp der abstrakten Klasse Node. Jeder Knoten darf nur einmal an einer Stelle im Szenegraphen auftauchen.

  • Eine Unterklasse von Node ist Parent. Parent ist ebenfalls eine abstrakte Klasse und Basistyp aller Objekte, die Kinder haben, also Container sind. Ein Text zum Beispiel ist nicht vom Typ Parent, da ein Text nur einen Text darstellt, aber keine eigenen Kinder hat. Von Parent gibt es vier Unterklassen: Control, Group, Region und WebView.

  • Control ist ein Basistyp für Komponenten, also etwa für Schaltflächen oder Beschriftungen. Jede Control-Komponente lässt sich über CSS optisch stylen. Die meisten Control-Objekte verarbeiten Ereignisse und nehmen am Fokuswechsel teil.

  • Eine Group ist ein einfacher Container, der mehrere Elemente zu einem Knoten zusammenfasst. Interessant ist eine Group deswegen, weil zum Beispiel Transformationen oder Effekte auf eine Gruppe angewendet werden können und dann diese Transformationen auf alle Elemente der Gruppe delegiert werden. Gruppen lassen sich beliebig schachteln. Ein Group-Objekt hat eine Methode getChildren(), die eine ObservableList<Node> liefert, der dann Knoten zugeführt werden können. Die Gruppe selbst gibt den Kindern aber keine Positionen, was sie von einem typischen Swing-Container wie JPanel unterscheidet.

  • Eine Region ist ein besonderer Parent, also ein Container, dem nicht nur Elemente hinzugefügt werden können, sondern der selbst als Container über CSS optisch angepasst werden kann. Von Region gibt es eine Unterklasse Pane, die die Kinder über öffentliche Methoden nach außen gibt. FlowPane ist eine Unterklasse von Pane, die Kinder der Reihe nach anordnet und wenn nötig umbricht. Da eine FlowPane eine Pane ist und eine Pane eine Region, kann etwa eine Reihe von Komponenten über CSS zum Beispiel extern mit einer Hintergrundfarbe konfiguriert werden. Eine Group und eine Region haben in der Vererbungshierarchie nur Parent über sich, stehen also nebeneinander. Um den Unterschied noch einmal zu betonen: Eine Group kümmert sich nicht um die Positionen der Kinder, und sie kann nicht über CSS angepasst werden, eine Region schon.

 
Zum Seitenanfang

12.2.2Datenstrukturen Zur vorigen ÜberschriftZur nächsten Überschrift

Das Paket javafx.collections deklariert Datenstrukturen, auf die JavaFX zurückgreift, etwa bei einer Group. Diese neuen Typen wurden in Kapitel 4, »Datenstrukturen und Algorithmen«, schon ausführlich vorgestellt, deshalb hier nur noch einmal eine kompakte Zusammenfassung:

[zB]Beispiel

Füge einer neuen Gruppe zwei Textobjekte, text1 und text2, hinzu:

Group group = new Group();
group.getChildren().addAll( text1, text2 );

Neue Container zu deklarieren hat einen guten Grund, denn die JavaFX-Datenstrukturen lösen bei Veränderungen Ereignisse aus. Die Sammlungen aus java.util können zum Beispiel nicht melden, wenn ein Element verschwindet oder hinzugekommen ist.

Für Listen und Assoziativspeicher deklariert JavaFX zwei neue Schnittstellen:

  • ObservableList<E> (erweitert java.util.List<E>)

  • ObservableMap<K,V> (erweitert java.util.Map<K,V>)

Es gibt keine benutzersichtbaren implementierenden Klassen, sondern eine Utility-Klasse FX‐Collections mit statischen Methoden, die Exemplare dieses Typs liefern.

[zB]Beispiel

Lege eine ObservableList an, und beobachte die Änderungen:

ObservableList<String> list = FXCollections.observableArrayList();
list.addListener( new ListChangeListener<String>() {
@Override public void onChanged( ListChangeListener.Change<? extends String> e ) {

} } );
list.add( "1" );
list.add( "2" );
list.remove( 1 );
list.clear();

Ein ListChangeListener.Change-Objekt liefert Informationen, etwa ob die Liste wächst oder schrumpft oder an welcher Stelle es Veränderungen gab.

 


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