JavaFX 8 - Der Einstieg in die Java-GUI Programmierung

Du hast es satt, langweilige Konsolenprogramme zu schreiben? Dann bist du hier genau richtig! JavaFX ist die Zukunft!
4.6 (75 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
530 students enrolled
$19
$70
73% off
Take This Course
  • Lectures 108
  • Length 8 hours
  • Skill Level Beginner Level
  • Languages German
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 8/2015 German

Course Description

In diesem Kurs lernst du die Grundlagen der GUI Entwicklung in JavaFX kennen. Er ist sowohl für komplette GUI Neulinge, als auch für Swing/SWT Umsteiger geeignet.

JavaFX wird u.a. von Oracle momentan stark weiterentwickelt. Das bedeutet, dass du schon jetzt in das Gebiet einsteigen kannst und damit einen großen Vorteil gegenüber anderen hast, die sich noch mit veralteten Technologien herumschlagen. Investiere jetzt in deine Zukunft!

Der vorliegende Kurs beinhaltet:

  • Einführung in die GUI Entwicklung an sich
  • Grundlagen der Properties, die mächtige neue Datentypen von JavaFX sind
  • Alle GUI Elemente (Nodes und Panes) von JavaFX8u40 werden vorgestellt!
  • Ansprechende Diagramme können mit JavaFX erstellt werden. Wie dies funktioniert, wird ebenfalls gezeigt.
  • Der SceneBuilder ist ein einfaches Tool mit dem komplexe GUIs innerhalb von Minuten zusammengeklickt werden können. Eine Einführung darin erhältst du hier!
  • Um GUIs noch weiter aufzupeppen, kann in JavaFX die bekannte Stylesheet-Sprache CSS verwendet werden. Auch das wird dir hier gezeigt!
  • Eine erfolgreiche GUI Entwicklung setzt voraus, dass die grafische Benutzeroberfläche niemals hängen bleibt, das frustet sonst den User unnötig. Einige Taktiken, wie dies funktioniert, werden vorgestellt.

Aber damit nicht genug!

Dir fehlt etwas im Kurs? Schreib mir einfach hier auf Udemy oder per Mail (jakob.schaal@hotmail.com), wenn sich genug Leute für ein Thema, welches mit JavaFX zu tun hat, interessieren, dann werden neue Episoden aufgenommen und hochgeladen.

Und was, wenn mir der Kurs dann doch nicht gefällt?

Das glaube ich nicht. Und wenn doch, gibt es auf Udemy eine 30-tägige Geld-Zurück-Garantie! Sollte dir der Kurs wirklich nicht gefallen, dann mach bitte davon Gebrauch. Also, riskiers ruhig! Du hast nichts zu verlieren, investierst aber in deine eigene Zukunft!

What are the requirements?

  • Java-Basics werden vorausgesetzt
  • "Objektorientierung" sollte kein Fremdwort sein

What am I going to get from this course?

  • Du lernst komplexe JavaFX-GUIs zu erstellen
  • Multithreading! Wie deine GUIs immer reagieren können, egal wie groß die Arbeit ist, die sie im Hintergrund verrichten.
  • Weitere Videos werden je nach Bedarf produziert. Diese bekommst du dann, nachdem du den Kurs einmal gekauft hast, kostenlos mit dazu!

What is the target audience?

  • GUI Einsteiger
  • Umsteiger von Swing/SWT oder anderen GUI-Libs

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Einleitung
05:22

Was lernen Sie von diesem Kurs? Welches Vorwissen wird benötigt?

04:04

Die Installation von e(fx)clipse und dem SceneBuilder

Section 2: Die erste Anwendung
06:29

In dieser Episode wird ein einfaches Fenster mit Text erzeugt.

07:04

Wie wird eine JavaFX Anwendung gestartet und korrekt wieder beendet?

01:06

Der JavaFX Application Thread wird automatisch von JavaFX gestertet und kümmert sich um das erhalten und weiterreichen von Events.

02:58

Jedes Programm kann mit Startparametern aufgerufen werden. Wie können wir diese in JavaFX verwenden?

02:12

Die Grundbausteine einer jeden JavaFX Anwendung.

Section 3: Properties
04:38

Properties sind Wrapper um primitive (+ String + Object) Datentype, auf welche wir Listener registrieren können.

04:02

Mit der Hilfe von NumberBindings können Properties aneinander geknüpft werden, wodurch sie permanent (oder bis sie unbindet werden) in Abhängigkeit zueinander stehen. Auf diese weiße lassen sich später verschiedene Komponenten (Controls) unserer GUI miteinander verknüpfen.

02:06

Auch StringProperties können in Abhängigkeit zueinander stehen. Wie das funktioniert wird in dieser Episode gezeigt.

06:00

Es gibt 2 unterschiedliche Arten von Listenern in JavaFX. Was der unterschied zwischen den beiden ist wird hier erklärt.

07:27

Die Observable List kann man sich am leichtesten als "List Propertie" vorstellen, also eine Liste die auf Änderungen reagieren kann und ihre eigenen Listener benachrichtigt, sobald sich etwas ändert.

03:39

Bei der Benutzung von Properties ist es in JavaFX zwingend notwendig einige Konventionen einzuhalten, damit Tools auf diese korrekt reagieren können.

Section 4: Controls
11:35

Ein Label ist ein kleines Stückchen Text, welches man in der GUI anzeigen lassen kann.

04:06

Der klassische Button (Knopf) wird hier vorgestellt.

04:32

Bei der Checkbox handelt es sich um ein kleines Kästchen in welches der User entweder einen Hacken machen kann oder diesen wieder entfernen kann. Wie man die Checkbox richtig benutzt und welchen dritten Zustand diese Checkbox noch einnehmen kann ist Thema dieser Episode.

03:26

Der ToggleButton ist ein Button, der, ähnlich wie eine Checkbox, dauerhaft bei betätigung gedrückt bleibt bis der User ihn nochmal anklickt.

01:46

Ähnliches Verhalten wie der Toggle Button, allerdings mit anderem Design. Wo der Unterschied zum Toggle Button noch liegt ist thema dieser Episode.

05:48

Besser bekannt als "drop down menu".

03:07

Wenn man über Controls mit der Maus hovert, dann will man manchmal zusätzliche Informationen sehen. Bei diesen Informationen handelt es sich um Tooltips.

04:34

Wie gibt der User eigentlich eine Zeile Text (Strings) in die GUI ein?

04:27

Ein Passwort in ein Text Field zu tippen ist keine gute Idee, jeder, der sich in der Nähe des Bildschirms befindet kann sonst das Passwort mitlesen. Um dem abhilfe zu schaffen gibt es das Password Field.

03:26

Manchmal möchte der User aber auch etwas mehr, als nur eine Zeile Text eingeben. Dafür ist die TextArea gedacht.

03:48

Die ScrollBar ist die Control, die dafür sorgt, dass große Scenes auch in einem kleinen Fenster angezeigt werden können.

05:09

Wenn man nicht nur in eine Richtung scrollen will, sondern in beide dann benutzt man die ScrollPane.

05:45

Vorallem für Zahleneingaben in einem gewissen Intervall sind Schieberegler sehr interessant. Solche Schieberegler heißen "Slider".

02:28

Die ComboBox ist der Zusammenschluss von TextField und ChoiceBox.

05:20

Vorallem bei Ladezeiten sollte man den User immer darüber informieren wie viel % denn schon berechnet wurden. Dies ist zum Beispiel mit einem Ladebalken möglich. Dieser Ladebalken heißt in JavaFX "ProgressBar".

01:08

Manchmal ist kein Platz für einen Ladebalken, dann ist ein ProgressIndicator besser geeignet.

04:09

Hyperlinks sind letztendlich einfache Buttons in Textform. Diese können zum Beispiel eine Website öffnen, aber auch jede andere denkbare Funktion ist möglich.

02:59

Für das visuelle Unterteilen der GUI sind Separators bestens geeignet.

03:49

Um mehrere Controls zu gruppieren kann die Titled Pane benutzt werden.

01:49

Das Accordion ist ein Zusammenschluss mehrerer Titled Panes von denen immer nur eine ausgeklappt sein kann.

06:18

Wie sind eigentlich die Menüs am oberen Ende einer GUI realisiert? Das zeige ich in dieser Episode.

09:17

Mithilfe der ListView können Observable Lists grafisch dargestellt werden.

05:23

Cell Factorys können für ListViews verwendet werden um festzulegen wie sich die einzelnen Einträge verhalten sollen.

12:16

Reichen einem die vorimplementierten CellFactorys nicht so kann man auch komplett neue programmieren.

13:49

ListViews sind eindimensional. Das reicht nicht immer! Manchmal braucht man Tabellen. Dafür gibt es die TableViews.

03:32

Das klassische Beispiel einer TreeView ist der PackageExplorer links in Eclipse.

04:45

Um mehrere Buttons zu gruppieren kann man zum Beispiel die ButtonBar benutzen.

04:52

Will man mehrere Tabs, so wie im Browser verwenden dann braucht man die TabPane.

03:22

In einer Splitpane können mehrere Controls aufbewahrt werden und der User ist dann in der Lage die einzelnen Teilabschnitte selbst zu vergrößern oder zu verkleinern.

02:35

Beim Spinner handelt es sich um eine TextBox, welche für Zahlen gedacht ist. Mit 2 kleinen Buttons rechts kann diese Zahl dann erhöht bzw. verringert werden.

02:18

In der ToolBar können mehrere Controls platziert werden. Meist ist diese unterhalb eines Menüs zu sehen.

05:56

Über die Pagination können viele Seiten innerhalb der GUI realisiert werden.

02:50

Beim HTMLEditor handelt es sich um eine sehr umfangreiche Control, welche es dem User erlaubt komplett gestylten HTML Text zu entwerfen.

03:01

Der ColorPicker lässt den User eine beliebige Farbe wählen welche dann im Programm benutzt werden kann.

03:47

Mithilfe des FileChoosers lassen sich Dateien finden, speichern und bearbeiten.

Section 5: Layoutcontainer
03:40

HBox = Horizontal

VBox = Vertikal

00:42

Die FlowPane geht mit den Controls so um, als handle es sich bei ihnen um Text.

01:24

Will man aber echte TextNodes verarbeiten, dann ist die TextFlow der FlowPane überlegen.

04:01

Will man Nodes immer relativ zu einer der 4 Ecken der GUI positionieren dann ist die AnchorPane dafür gut geeignet.

06:20

Die BorderPane ist vermutlich die wichtigste Pane in ganz JavaFX, da sie das Grundgerüst der meisten GUIs bildet.

02:41

Die TilePane verhält sich zunächst genau wie die FlowPane, allerdings mit dem Unterschied, dass jede Zelle immer gleich Breit und Hoch ist.

06:45

Will man Controls in einem unsichtbaren Gitter positionieren so wählt man die GridPane.

13:30

Die StackPane ist gut dazu geeignet Controls "übereinander" zu stapeln.

07:19

Zum anzeigen einer Nachricht in einem neuen Fenster wird in der Regel die DialogPane verwendet.

04:45

Unmanaged Nodes sind Nodes, die vom Layoutcontainer ignoriert werden.

07:57

Reichen die bereitgestellten Layoutcontainer nicht? Dann mach doch einfach einen eigenen!

Section 6: Charts
03:18

Das klassische Tortendiagramm.

05:10

Wenn man es mit Daten zu tun hat die sich in Echtzeit ändern, dann kann man dies auch mit den Charts in JavaFX realisieren!

05:30

Der klassiche Aktienverlauf kann mit LineCharts angezeigt werden.

01:20

Wie die LineChart, jedoch ist die Fläche unterhalb der Linie gefüllt.

01:48

Die Flächen der AreaChart werden nun gestapelt dargestellt.

05:24

Das klassische Balkendiagramm

01:33

Kombination aus StackedAreaChart und BarChart

03:23

Wenn man Messdaten in Form von 2 Dimensionalen Werten hat, so kann die ScatterChart benutzt werden.

01:03

Wie die ScatterChart, allerdings haben die Messwerte jetzt noch unterschiedliche größen.

Section 7: SceneBuilder
07:37

Der SceneBuilder erlaubt es GUIs sehr schnell via "Drag & Drop" zusammenzuklicken.

03:56

Wenn man den SceneBuilder benutzt, dann kann man die Nodes nicht ohne zusätzliche Einstellungen im SceneBuilder selbst ansprechen (zumindest nicht ohne sich das Leben unnötig komplex zu machen). In dieser Episode wird gezeigt wie ihr trozdem auf Buttonklicks reagieren könnt.

08:23

In dieser Episode wird anhand eines einfachen Anwendungsbeispiels ein Taschenrechner mithilfe des SceneBuilders gebaut.

Section 8: CSS
08:49

Will man seiner GUI einen besonderen Style geben so kann man dies über die bekannte Sprache CSS machen.

04:37

Type-Selektor, Styleklassen und IDs

04:25

Selektoren können verknüpft werden um so komplexere Bedingungen zu formulieren und nur gezielte Notes anzusprechen.

02:40

Pseudoklassen beschreiben besonderes States der Nodes, wie ein Hover oder ein Klick.

00:42

Mit einem einfachen Befehl lässt sich das Grunddesign von JavaFX grundlegend ändern.

02:44

In der Root können zusätzliche Attribute gespeichert und festgelegt werden um so die ganze GUI von diesen Attributen abhängig zu machen und das Look and Feel über einfache Änderungen dieser Attribute grundlegend zu verändern.

01:51

Mit CSS kann man dafür sorgen, dass der promptText innerhalb eines TextFields immer angezeigt wird, solange noch nichts eingetippt wurde.

Section 9: Multithreading
04:05

In dieser Episode wird nochmal das klassiche mutlithreading gezeigt und die Motivation geschildert, warum Multithreading in GUI Entwicklungen zwingend notwendig ist.

07:48

Ein Task ist ein besser überwachbares Runnable, welches allerdings nur einmal ausgeführt werden kann.

02:32

Genau wie der Task, kann aber mehrfach ausgeführt werden.

01:16

Die Progress Bar ist bestens geeignet um den Fortschritt eines Services anzuzeigen.

02:33

Beim ScheduledService handelt es sich um einen Service der, einmal gestartet, sich immer wieder von alleine selbst startet.

Section 10: Ende
01:39

Das Ende der Ursprünglichen Serie. Aber vergesst nicht! Es geht weiter! Meldet euer Feedback hier auf Udemy oder per mail an jakob.schaal@hotmail.com

Section 11: Shapes
09:18

In JavaFX kann man auch mit primitiven Shapes zeichnen. In dieser Episode zeichne ich ein kleines Häuschen.

05:02

Shapes können miteinander verknüpft werden, wodurch komplexere Formen möglich werden.

02:26

"Text" kann man wie ein "Label" sehen, welches allerdings auf der Klasse Shape aufbaut.

04:11

Der Arc zeichnet einen Ausschnitt einer Ellipse.

04:34

Durch Bézierkurven können komplexe Kurven relativ leicht realisiert werden. Eine Art der Bézierkurve ist die QuadCurve, mit einem Kontrollpunkt.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Jakob Schaal, Java Profi

Halli Hallo, seit über 5 Jahren erstelle ich auf Youtube Tutorialvideos übers Programmieren und Mathematik. In dieser Zeit habe ich eine Menge über Didaktik gelernt. Es ist einer meiner innigsten Wünsche, Menschen komplexes Wissen in einer einfachen Sprache zu vermitteln. Dies habe ich wohl meistens geschafft, über 16.000 Abonnenten und über 3 Millionen Videoaufrufe sprechen für sich.

Ich habe den Bachelor der Medieninformatik erfolgreich mit einer 1,0 Thesis bestanden und bin aktuell im Master Studiengang. Auch während des Studiums war ich bereits als offizieller Tutor in Pflichtfächern als Lehrkraft tätig. Neben meinem Studium bin ich momentan Spieleentwickler. Für diesen Job ist es unter anderem wichtig, funktionierende GUIs für interne Tools zu erschaffen, damit diese in der Produktion verwendet werden können.

Ready to start learning?
Take This Course