JavaFX Layout and Controls

Ähnliche Dokumente
JavaFX Interaction. Events Eventhandler Lambda-Ausdrücke

Grafische Benutzeroberflächen mit JavaFX Einführung

JavaFX. Arthur Zaczek. Mar 2015

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Javakurs für Fortgeschrittene

Praktikum. SEP: Java-Programmierung WS 2018/19. Einführung JavaFX. Thomas Lemberger und Martin Spießl. (OpenJFX)

Einführung in JavaFX

Einführung in die Programmierung für NF. Übung 08

GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik

Nutzung von JavaFX. Wo? Wann? Wie?

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Inhaltsverzeichnis VII

Ein Leben ohne Notes Client Sven Hasselbach

7. Objektorientierung. Informatik II für Verkehrsingenieure

Design Patterns I. Observer, Listener & MVC

Multimedia im Netz Wintersemester 2012/13

Entwicklung mit JavaFX

Repetitorium Informatik (Java)

Implementieren von Klassen

Objektorientierte Programmierung Studiengang Medieninformatik

Bachelorprüfung: Objektorientierte Softwareentwicklung

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene

Info B VL 11: Innere Klassen/Collections

Rich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) Jakob Külzer jakob.kuelzer@gmail.

Einführung in JavaFX

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

Graphical User Interfaces mit

2. Unterprogramme und Methoden

Grafische Benutzeroberflächen mit JavaFX Canvas, Transformationen, Scene Builder

Praktikum 4: Grafiken und Ereignisse

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Modularisierung in Java: Pakete Software Entwicklung 1

Programmiertechnik GUI Programmierung mit Java Swing

5.6 Neuerungen in JavaFX 8 Update 40

Web-Techniken Einführung in JavaScript

LISP. Eine Einführung

Handbuch für die Erweiterbarkeit

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -

Ein erstes "Hello world!" Programm

JavaFX Beispiel Lights Out (Teil 1: Ansicht)

Klassenvariablen, Klassenmethoden

Programmieren in Java

Einstieg in die Informatik mit Java

Anton Epple. JavaFX 8. Grundlagen und fortgeschrittene Techniken. dpunkt.vertag

Software Entwicklung 1

Inhaltsverzeichnis. Apps für Android entwickeln

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

JAVA - Methoden

Funktionale und Objekt-Orientierte Programmierkonzepte

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Geschachtelte Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Softwaretechnik WS 16/17. Übungsblatt 01

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Propädeutikum Programmierung in der Bioinformatik

Java Einführung Methoden. Kapitel 6

Objektorientierte Programmierung Studiengang Medieninformatik

~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1.

Einführung in GUI-Programmierung. javax.swing

Objektorientiertes Programmieren (Java)

Javakurs für Anfänger

JAVA Oberflächen mit Swing

Aufgabe 1: Erste einfache Screen-Navigation.

1 - EIN NEUES GAMEGRID ANLEGEN

Innere Klassen in Java

Multimedia-Programmierung Fragestunde zur Klausur

Einführung in die OOP mit Java

Transkript:

JavaFX Layout and Controls

JavaFX 8-Systemvoraussetzungen Grundsätzlich verwendbar mit Java7 ab Version 4.x (?) Standard in Java8 mit Java8 arbeiten System-VM auf Java8 umstellen (sonst gibt es Probleme mit eclipse!) Dann in eclipse Projekt anlegen mit New > Other > JavaFX Project

Der Scene Graph Basisstruktur der grafischen Oberflächen mit FX Quelle Rheinjug / Saxonia Systems / http://youtu.be/hyw4trofgxa

Der Scene Graph Stage enthält zu jeder Zeit eine Scene kann aber ausgetauscht werden Navigation Scene enthält Nodes Node kann sein Pane Group Parent (enthält Nodes) WebView UI-Element Shape (2D, 3D) View (Image, Media) Canvas...

Panes mit Layouts Panes sind "Setzkästen" für Elemente haben ein "Layout", d.h. eine typische Anordnung erhalten die Anordnung robust bei Größenveränderungen können geschachtelt werden sind Parents haben ein List-Attribut "children", deshalb Hinzufügen über mypane.getchildren().add(...) oder...addall(...) weitere wichtige Panes: GridPane, AnchorPane, SplitPane

VBox

VBox + HBox,...

BorderPane Standard-Layout für Webseiten: Kopf- ud Fußzeile Rechter und linker Rand Inhaltsbereich in der Mitte Was nicht besetzt ist, nimmt keinen Raum ein: top left center right bottom

BorderPane

Layout-Spicker VBox, HBox Quelle: http://www.dummies.com/how-to/content/javafx-for-dummies-cheat-sheet.html

Layout-Aufgabe

Zum Nachlesen http://docs.oracle.com/javase/8/javafx /layout-tutorial/builtin_layouts.htm #JFXLY102

JavaFX Controls UI-Elemente, früher auch "Widgets" genannt Quelle: H. Vogelsang, www.iwi.hs-karlsruhe.de/~voho0001/i2/vorlesung/i22-guismitjavafx.pdf

JavaFX Controls UI-Elemente, früher auch "Widgets" genannt Quelle: H. Vogelsang, www.iwi.hs-karlsruhe.de/~voho0001/i2/vorlesung/i22-guismitjavafx.pdf

JavaFX Controls UI-Elemente, früher auch "Widgets" genannt Quelle: H. Vogelsang, www.iwi.hs-karlsruhe.de/~voho0001/i2/vorlesung/i22-guismitjavafx.pdf

JavaFX Controls UI-Elemente, früher auch "Widgets" genannt Quelle: H. Vogelsang, www.iwi.hs-karlsruhe.de/~voho0001/i2/vorlesung/i22-guismitjavafx.pdf

JavaFX Controls UI-Elemente, früher auch "Widgets" genannt Quelle: H. Vogelsang, www.iwi.hs-karlsruhe.de/~voho0001/i2/vorlesung/i22-guismitjavafx.pdf

JavaFX Controls UI-Elemente, früher auch "Widgets" genannt Quelle: H. Vogelsang, www.iwi.hs-karlsruhe.de/~voho0001/i2/vorlesung/i22-guismitjavafx.pdf

JavaFX Controls UI-Elemente, früher auch "Widgets" genannt Quelle: H. Vogelsang, www.iwi.hs-karlsruhe.de/~voho0001/i2/vorlesung/i22-guismitjavafx.pdf

Die komplette Übersicht http://docs.oracle.com/javase/8/jav afx/user-interfacetutorial/ui_controls.htm#jfxui336

Wem das nicht reicht, der findet im Open Source Projekt ControlsFX jede Menge Material: ControlsFX Library

Einfache Interaktion

Interaktion Jedem Control kann Interaktivität hinzugefügt werden Die GUI erkennt verschiedenste Interaktions-Ereignisse Mausklick Mausbewegung, Dragbewegung linke, rechte Maustaste Taste gedrückt, losgelassen Entertaste Selektion... Für jedes Ereignis wird ein von der GUI ein Event-Objekt erzeugt, das die erforderlichen Infos enthält (z.b. "worauf geklickt?") Den Controls können durch "SetOn..."-Methoden Event-Handler hinzugefügt werden. Wir beginnen mit "ActionEvents", wie z.b. Knopfdruck und Enter Die anderen Events kommen später...

Aktion des Login-Knopfes

EventHandler des Login-Knopfes LoginHandler ist innere Klasse (in Main05) Zweck: Controls (btn und usertextfield) sollen bekannt sein Beide dürfen aber nicht lokal in start() sein, sondern müssen Attribute werden:

Anonyme innere Klasse Viel unnötiger Code: Der Klassenname wird nur 1x benötigt! Deshalb üblicherweise anonyme innere Klasse: Deklaration und Instanziierung in einem Schritt Brrrr - hässlich, aber üblich!

Die elegante Lambda-Lösung Dies ist ein Überfall Vorgriff - Theorie folgt später Ein Lambda-Ausdruck ist eine namenlose Methode (also etwas Anonymes), die (als Objekt) weitergegeben werden kann (Heißt in Skriptsprachen Closure) Syntax in Java 8 Block mit einer Parameterliste einem Pfeil und einem Methodenrumpf (String public first, int compare(string second) -> first, { String second { if (first.length() < second.length()) return -1; else if (first.length() > second.length()) return 1; else return 0; } Als Methode nicht weitergebbar müsste noch in eine Klasse gekapselt werden. Lambda-Ausdrücke haben so eine (unsichtbare) Kapsel

Lambda statt anonym

Guter Stil Nicht mehr innere Klasse, nur noch private Methode

Noch Lust auf eine ComboBox? in "handle" sichtbar setzen...

Das sollte für die ersten Gehversuche reichen Was fehlt? Weitere Events Navigation und Message Panes Malen und Media