O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

JavaFX 8

Book Description

  • Erstes deutsches Buch zum Thema JavaFX 8, das von Oracle stark beworben und unterstützt wird.+ Bekannter Autor

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort
  5. 1 Workshop: Eine erste Anwendung erstellen
    1. 1.1 Ein JavaFX-Projekt mit der Entwicklungsumgebung anlegen
      1. 1.1.1 Wie erstelle ich ein JavaFX-Projekt in NetBeans?
      2. 1.1.2 Wie erstelle ich ein JavaFX-Projekt mit IDEA?
      3. 1.1.3 Wie erstelle ich ein JavaFX-Projekt mit Eclipse?
      4. 1.1.4 Ein JavaFX-Projekt mit Maven erstellen
      5. 1.1.5 Hallo Welt!
  6. 2 Wie ist eine JavaFX-Anwendung aufgebaut?
    1. 2.1 Anfang und Ende – die Application
      1. 2.1.1 Lebenszyklus einer JavaFX-Anwendung
      2. 2.1.2 Aufrufparameter auslesen
    2. 2.2 Vorhang auf – die Stage
      1. 2.2.1 Dialoge anzeigen
      2. 2.2.2 Darstellung der Stage verändern
      3. 2.2.3 Die Scene – Was wird gespielt?
      4. 2.2.4 Nodes – die Darsteller
    3. 2.3 Wie werden Layouts verwendet?
    4. 2.4 Workshop: Einen Twitter-Client erstellen
      1. 2.4.1 Vorbereitung
      2. 2.4.2 Die Anwendung erzeugen
      3. 2.4.3 Mit Twitter4j auf die Timeline zugreifen
  7. 3 Properties und Bindings
    1. 3.1 Beans und Properties
      1. 3.1.1 Klassische JavaBean-Properties
      2. 3.1.2 Die neuen JavaFX-Properties
      3. 3.1.3 Was sind die wichtigsten Klassen und Interfaces?
      4. 3.1.4 Wie legt man Properties an?
      5. 3.1.5 Wie findet man die Bean zu einer Property?
      6. 3.1.6 Wie werden Properties schreibgeschützt?
    2. 3.2 Wie verwendet man Bindings?
      1. 3.2.1 High-Level- und Low-Level-APIs
      2. 3.2.2 Wie können Bindings logisch verknüpft werden?
      3. 3.2.3 Was für Berechnungen sind mit numerischen Bindings möglich?
      4. 3.2.4 Wie verwendet man StringProperties in Bindings?
      5. 3.2.5 Was passiert, wenn wir den Wert einer gebundenen Property setzen?
      6. 3.2.6 Bidirektionale Bindings
      7. 3.2.7 Wenn, dann und ansonsten – noch mehr Bindings-Logik
    3. 3.3 Mit Listenern auf Änderungen reagieren
      1. 3.3.1 InvalidationListener
      2. 3.3.2 ChangeListener
      3. 3.3.3 Welchen Listener soll ich verwenden?
    4. 3.4 JavaFX Collections
      1. 3.4.1 Welche sind die wichtigsten Klassen und Interfaces?
      2. 3.4.2 Wie erzeuge ich eine JavaFX Collection?
      3. 3.4.3 Wie reagiere ich auf Änderungen?
      4. 3.4.4 Wie verwende ich Bindings mit ObservableList?
      5. 3.4.5 Wie observiere ich einen bestimmten Wert einer Collection?
      6. 3.4.6 Wie erzeuge ich eine Lazy ObservableList?
    5. 3.5 Properties und Performance
    6. 3.6 Grenzen der Verwendung von Properties
  8. 4 Welche Bedienelemente gibt es?
    1. 4.1 Welche Controls stehen zur Verfügung?
    2. 4.2 Wie werden Controls verwendet?
      1. 4.2.1 Wie werden Labels verwendet?
      2. 4.2.2 Tooltip
      3. 4.2.3 Buttons
      4. 4.2.4 Texteingabe mit TextField, PasswordField, TextArea und HTMLEditor
        1. 4.2.4.1 Mehrzeilige Texte mit TextArea eingeben
      5. 4.2.5 Numerische Werte mit dem Slider eingeben
      6. 4.2.6 Menüs und Kontextmenüs erstellen
      7. 4.2.7 ListView
      8. 4.2.8 TableView
      9. 4.2.9 TreeView und TreeTableView
      10. 4.2.10 Auswahlfelder
    3. 4.3 Controls fürs Layout verwenden
      1. 4.3.1 Accordion-Control und TitledPane verwenden
      2. 4.3.2 Mehrere Seiten mit der TabPane verwalten
      3. 4.3.3 Blättern mit Touchgesten und dem Pagination-Control
      4. 4.3.4 SplitPane
    4. 4.4 Workshop: Eine ListView für die Twitter-App
  9. 5 Ein Layout erstellen
    1. 5.1 Die eingebauten Layouts verwenden
      1. 5.1.1 VBox und HBox
    2. 5.2 Die BorderPane verwenden
    3. 5.3 Layouts mit der AnchorPane erstellen
    4. 5.4 Die FlowPane verwenden
    5. 5.5 Layout mit der StackPane
    6. 5.6 Layout mit der TilePane
    7. 5.7 Layout mit der GridPane
      1. 5.7.1 Wie füge ich Nodes hinzu?
      2. 5.7.2 Wie passt man Höhe und Breite der Columns und Rows an?
      3. 5.7.3 Wie werden einzelne Elemente ausgerichtet?
    8. 5.8 Unmanaged Nodes
    9. 5.9 Eigene Layoutcontainer erstellen
    10. 5.10 Workshop: Ein bestimmtes Layout umsetzen
  10. 6 Formulare mit FXML erstellen
    1. 6.1 Wozu FXML?
    2. 6.2 Beispielprojekt
    3. 6.3 Layouts per Drag-and-Drop mit dem SceneBuilder erstellen
      1. 6.3.1 Wie wird der SceneBuilder installiert?
      2. 6.3.2 Wie integriere ich den SceneBuilder mit NetBeans?
      3. 6.3.3 Wie verwende ich den SceneBuilder mit e(fx)clipse?
      4. 6.3.4 Wie konfiguriere ich IntelliJ IDEA?
      5. 6.3.5 Wie erstelle ich ein Formular?
    4. 6.4 Das FXML-Format verstehen
    5. 6.5 Daten an den Controller anbinden
      1. 6.5.1 Member-Variablen annotieren
      2. 6.5.2 Sonderfälle ResourceBundle und URL
      3. 6.5.3 Methoden annotieren
      4. 6.5.4 Sonderfall initialize-Methode
    6. 6.6 FXML-Dateien laden
    7. 6.7 FXMLLoader und Internationalisierung
    8. 6.8 Eigene Nodes verwenden
    9. 6.9 Workshop: Einen Taschenrechner erstellen
    10. 6.10 Fazit
  11. 7 Den Look mit CSS gestalten
    1. 7.1 Beispielanwendung
    2. 7.2 CSS Basics
      1. 7.2.1 Selektoren
      2. 7.2.2 Eigenschaften und Deklarationen
      3. 7.2.3 Eigenschaftsvererbung
      4. 7.2.4 Zusammenfassende Eigenschaften
      5. 7.2.5 Namenskonventionen
      6. 7.2.6 Die wichtigsten stylebaren Eigenschaften
      7. 7.2.7 Stylebare Eigenschaften eines Nodes
      8. 7.2.8 Shapes
      9. 7.2.9 Region und Controls
      10. 7.2.10 Verwendung im Beispiel
      11. 7.2.11 Besonderheiten
      12. 7.2.12 UserAgent-Stylesheet
      13. 7.2.13 Stylesheet einer Scene
      14. 7.2.14 Stylesheet eines Parent
      15. 7.2.15 Eigenschaften über die Java-API setzen
      16. 7.2.16 Inline-Styles
      17. 7.2.17 CSS-API
    3. 7.3 Workshop: Eine Anwendung stylen
      1. 7.3.1 Wie registriere ich das Stylesheet?
      2. 7.3.2 Wie definiere ich Variablen?
      3. 7.3.3 Wie style ich den Hintergrund?
      4. 7.3.4 Wie style ich den Home-Button?
      5. 7.3.5 Wie reagiere ich im Style auf Buttonklicks?
      6. 7.3.6 Wie style ich den StatusView?
    4. 7.4 Workshop: Eine Anwendung im SceneBuilder stylen
      1. 7.4.1 Wie kann ich im SceneBuilder eine CSS-Datei registrieren?
      2. 7.4.2 Wie erzeuge ich einen LCD-Screen-Effekt?
      3. 7.4.3 Wie kann ich in CSS einen Font laden?
      4. 7.4.4 Wie erzeuge ich Pseudo-3D-Buttons?
      5. 7.4.5 Wie weise ich einem Node eine Id zu?
      6. 7.4.6 Wie trage ich im SceneBuilder eine Styleklasse ein?
      7. 7.4.7 Stylecheck mit dem CSS-Analyzer
    5. 7.5 Fazit
  12. 8 Charts erstellen
    1. 8.1 Ein Diagramm anzeigen
    2. 8.2 Aufbau der API
      1. 8.2.1 Achsen
      2. 8.2.2 Daten
    3. 8.3 Welche Diagrammtypen gibt es?
      1. 8.3.1 LineChart und AreaChart
      2. 8.3.2 PieChart
      3. 8.3.3 BarChart
      4. 8.3.4 ScatterChart
      5. 8.3.5 BubbleChart
    4. 8.4 Dynamische Charts
  13. 9 Nebenläufigkeit und Fortschrittsanzeige
    1. 9.1 JavaFX und die gefühlte Performance
    2. 9.2 Die Klassen der javafx.concurrent-API
      1. 9.2.1 Worker
      2. 9.2.2 Task
      3. 9.2.3 Service
      4. 9.2.4 ScheduledService
    3. 9.3 Fortschritt anzeigen
      1. 9.3.1 ProgressBar
      2. 9.3.2 ProgressIndicator
      3. 9.3.3 Fortschrittskomponenten anpassen
    4. 9.4 Workshop: Automatische Updates für den Twitter-Client
      1. 9.4.1 Wie erzeuge ich einen Refresh Task?
      2. 9.4.2 Wie kann der Task wiederholt aufgerufen werden?
      3. 9.4.3 Wie rufe ich den Service periodisch auf?
      4. 9.4.4 Wie aktualisiere ich das UI?
    5. 9.5 Fazit
  14. 10 Grafische Anwendungen mit Shapes gestalten
    1. 10.1 Den SceneGraph verstehen – Unterschiede zu Swing
    2. 10.2 Nodes für Grundformen
      1. 10.2.1 Rectangle
      2. 10.2.2 Circle
      3. 10.2.3 Ellipse
      4. 10.2.4 Schnittmengen bilden
      5. 10.2.5 Line
      6. 10.2.6 Eigenschaften des Linienstrichs verändern
      7. 10.2.7 Polyline und Polygon
      8. 10.2.8 Arc, CubicCurve und QuadCurve
      9. 10.2.9 Text
    3. 10.3 Pfade und SVG
    4. 10.4 Grafiken mit Effekten versehen
      1. 10.4.1 Wie erzeuge ich einen Schlagschatten?
      2. 10.4.2 Wie verwende ich den InnerShadow?
      3. 10.4.3 Wie verwende ich Reflection?
      4. 10.4.4 Der Blend-Effekt
      5. 10.4.5 Der Bloom-Effekt
      6. 10.4.6 Wie kann ich Effekte verknüpfen?
  15. 11 Animationen erstellen
    1. 11.1 Vorgefertigte Transitionen verwenden
      1. 11.1.1 Eine Transition steuern
      2. 11.1.2 Start- und Endwert setzen
      3. 11.1.3 Eine Transition in Schleifen abspielen
      4. 11.1.4 PathTransition
    2. 11.2 Animationen in parallelen und sequenziellen Transitionen organisieren
    3. 11.3 Timeline und KeyFrames
      1. 11.3.1 Besonderheit des ersten KeyFrame
      2. 11.3.2 Interpolierbare Typen und das Interface Interpolatable
    4. 11.4 Interpolatoren
      1. 11.4.1 Vordefinierte Interpolatoren
      2. 11.4.2 Einen eigenen Interpolator erstellen
    5. 11.5 Eigene Transitionen erstellen
  16. 12 Auf systemnahen Input reagieren
    1. 12.1 Welche sind die wichtigsten Klassen?
      1. 12.1.1 Target
      2. 12.1.2 Source
      3. 12.1.3 EventType
      4. 12.1.4 EventHandler
    2. 12.2 Wie werden Events verteilt?
      1. 12.2.1 Event Target Selection
      2. 12.2.2 Event Route Construction
      3. 12.2.3 Event Capturing Phase
      4. 12.2.4 Event Bubbling Phase
    3. 12.3 Wie reagiert man auf Events?
      1. 12.3.1 EventHandler Properties
      2. 12.3.2 EventHandler- und EventFilter-Registrierung
      3. 12.3.3 EventDispatcher
  17. 13 Die WebView nutzen
    1. 13.1 Wie zeige ich eine Webseite an?
    2. 13.2 Wie kann ich JavaScript ausführen?
      1. 13.2.1 Geht das auch einfacher?
    3. 13.3 Wie funktionieren Callbacks von JavaScript nach Java?
    4. 13.4 Workshop: Twitter-Authentifizierung einbauen
      1. 13.4.1 Erweiterungsmöglichkeiten
  18. 14 Audio und Video einbinden
    1. 14.1 Wie kann ich Audio abspielen?
      1. 14.1.1 Wie überwache ich den Zustand des Players?
      2. 14.1.2 Wie kontrolliere ich den Sound?
      3. 14.1.3 Welche Audioformate werden unterstützt?
    2. 14.2 Wie kann ich eine Videodatei abspielen?
      1. 14.2.1 Welche Videoformate werden unterstützt?
    3. 14.3 Wie kann ich damit auch YouTube-Videos abspielen?
  19. 15 Canvas-API
    1. 15.1 Retained Mode vs. Immediate Mode
    2. 15.2 Elemente anzeigen
      1. 15.2.1 Einfache Formen
      2. 15.2.2 Komplexe Formen (Path)
      3. 15.2.3 Den Stil ändern
      4. 15.2.4 Bilder
      5. 15.2.5 Text
      6. 15.2.6 Einzelne Pixel
    3. 15.3 Fortgeschrittene Techniken
      1. 15.3.1 Transformationen
      2. 15.3.2 State Stack
      3. 15.3.3 Global Alpha und Blend Mode
      4. 15.3.4 Effekte
    4. 15.4 Unterschiede zum HTML Canvas
      1. 15.4.1 Methoden zur Anzeige von Shapes
      2. 15.4.2 Typen der Properties
      3. 15.4.3 Hitareas
      4. 15.4.4 Effekte
    5. 15.5 Aufgabe
      1. 15.5.1 Erweiterungsmöglichkeiten
  20. 16 JavaFX und Internationalisierung
    1. 16.1 Wie verwendet man Locale und ResourceBundles?
      1. 16.1.1 Wie verwendet man ResourceBundles mit FXML?
  21. Index
  22. Fußnoten