JAVA Oberflächen mit Swing



Ähnliche Dokumente
JAVA Oberflächen mit Swing

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

GUI Programmierung in Java

GUI Programmierung mit JAVA Swing

GRAFISCHE BENUTZERSCHNITTSTELLEN

Objektorientierte Software-Entwicklung

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Grafische Benutzeroberflächen mit Swing

Swing Lernen am Code Teil 1

Grundlagen der Programmierung APPLETS

Java Design und Event Handling. Natascha Hoebel Professur Prof. R. V. Zicari. AWT SWING Layout Design Event Handling

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

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

Swing :Komponenten I (Teil 2)

mit dem TeXnicCenter von Andreas Both

Professionelle Seminare im Bereich MS-Office

Webalizer HOWTO. Stand:

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Thema: Microsoft Project online Welche Version benötigen Sie?

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

Javakurs für Fortgeschrittene

Eine Anwendung mit InstantRails 1.7

MetaQuotes Empfehlungen zum Gebrauch von

Einstieg in die Informatik mit Java

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

Text Formatierung in Excel

C.M.I. Control and Monitoring Interface. Zusatzanleitung: Datentransfer mit CAN over Ethernet (COE) Version 1.08

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Einführung in GUI-Programmierung. javax.swing

Version 0.3. Installation von MinGW und Eclipse CDT

Qt-Projekte mit Visual Studio 2005

Webseitenintegration. Dokumentation. v1.0

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Projekt AGB-10 Fremdprojektanalyse

Liesmich zum Kurs: Programmieren in der Bioinformatik mit Perl Konfigurierung der Programmierumgebung

Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK

4D Server v12 64-bit Version BETA VERSION

Live Update (Auto Update)

Internet Explorer Version 6

:: Anleitung Hosting Server 1cloud.ch ::

Dokumentation Schedulingverfahren

Anleitung über den Umgang mit Schildern

Der Kalender im ipad

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Adminer: Installationsanleitung

Ihr CMS für die eigene Facebook Page - 1

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Typo3 - Inhalte. 1. Gestaltung des Inhaltsbereichs. 2. Seitenunterteilung einfügen

Computeria Solothurn

Idimager ein Bildverwaltungsprogramm-DAM Software

Anleitung zur Webservice Entwicklung unter Eclipse

Erstellen von x-y-diagrammen in OpenOffice.calc

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Kurzeinführung Excel2App. Version 1.0.0

Kleines Handbuch zur Fotogalerie der Pixel AG

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Einführung in GUI-Programmierung. javax.swing

Leichte-Sprache-Bilder

Design Patterns 2. Model-View-Controller in der Praxis

Hinweise zur Installation von MySQL

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

Verschlüsselung mit PGP. Teil 1: Installation

Für Kunden die den neuen TopMaps Viewer EINER für ALLE als Betrachtungs-Software verwenden wollen. Top10 V1, Top25 V3, Top50 V5, WR50 V3 DVD s

Erstellen eines Beitrags auf der Homepage Schachverband Schleswig-Holstein - Stand vom

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Handbuch PCI Treiber-Installation

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Quartalsabrechnung! " " " " " " " Stufe 1! Beheben von Abrechnungsfehlern" Stufe 2! Neue Abrechnung erstellen"

Pfötchenhoffung e.v. Tier Manager

KURZANLEITUNG CLOUD OBJECT STORAGE

Layoutmodelle. Steffen Schwientek Große Klostergasse Friedberg schwientek@web.de Web :schlaukopp.org

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Objektorientierte Softwareentwicklung

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Installationsanleitung jk-ma011-1-hotel

Leitfaden zur Installation von Bitbyters.WinShutdown

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Hinweise zum Übungsblatt Formatierung von Text:

Einfügen von Bildern innerhalb eines Beitrages

Installationsanleitung für pcvisit Server (pcvisit 12.0)

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

eridea AG Installation Eclipse V 1.4

Verschlüsselung mit PGP. Teil 1: Installation

Transkript:

JAVA Oberflächen mit Swing Grafik von http://javafx.com 168 168

AGENDA Grundlagen GUI Swing JavaFX 169 169

GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten des OS Bietet nur eine Grundmenge von Elementen aller OS Swing Swing werden direkt von Java gerendert und sind OS frei Mehr Elemente und bequemere API Oft kein natives OS Verhalten und etwas langsamer 170!2.! - Wegen Swing sind Java Desktop Applikationen so in Verruf geraten.!! - Man merkt den Applikationen eben an, dass es Java ist.! 0.! - Weitere Oberflächentechnologien von Java:!! - SWT -> Standard Window Toolkit!! - Von eclipse (entwickelt und verwendet)!! - Verwendet native UI Komponenten, reduziert sich jedoch auf den kleinsten gemeinsamen Nenner aller.!! - Rest wird in pure Java implementiert. 170

GRAPHISCHE BENUTZEROBERFLÄCHEN (2) JavaFX Ab Java 7 Teil vom JDK Aktuelle Version 8 Portabel Direkt von Java gerendert 171!1.! - Kann aber auch separat heruntergeladen werden! 2.! - JavaFX 1.x kann nicht mit 2.x verglichen werden.!! - 2007 hat Sun JavaFX offiziell angekündigt, war aber sehr experimentell.!! - 2008 kam JavaFX 1.0 als Entwicklerkit für Mac und Windows.!! - 2009 kam Version 1.2 mit mehr UI Komponenten und Linux support, aber keiner Abwärtskompatibilität.!! - Bisher war es nicht so wirklich gut benutzbar und nie abwärtskompatibel nach einem Release.!! - 2011 kam Version 2.0 und es wurde bisheriger Scriptansatz verworfen und aktuelle Strategie implementiert.!! - 2.0 unterstützt Hardware-Rendering! 3.! - JavaFX kann auf dem Desktop ausgeführt werden, allerdings auch als WebAnwendung auf den Client herunter geladen werden.!! - Weiterhin werden JavaFX im Browser laufen, auf SetTop Geräten, Mobilfunkgeräten,...!! - Eher der webbasierte Weg!! - UI Komponenten können per CSS gestyled werden.! 4.! - Ähnlich zu Swing.!! - Aber können mit unterschiedlichem Look and Feel für unterschiedliche Betriebssysteme angezeigt werden.!! 171

SWING Alle Swing UI Komponenten sind java.awt.container und können andere Komponenten beinhalten Ermöglicht ein einheitliches Konzept zum Rendering Scope dieses Abschnittes: Grundkonzept kennen 172!1.! - Baut auf AWT auf, verwendet einige AWT Klassen!! Aber: Komplett in Java entwickelt, verwendet keine Betriebssystemresourcen!! - Pluggable Look-and-Feel!! - Plattformunabhängig, da Rendering über Java Komponenten! 3.! - http://docs.oracle.com/javase/tutorial/uiswing/components/index.html!! - http://docs.oracle.com/javase/tutorial/ui/features/components.html! 172

SWING JCOMPONENT JComponent ist die Basisklasse aller Swing UI Komponenten Erbt von java.awt.container ->Alle Swing Elemente Container JComponent unterstützt viele Features ToolTips, Border, Pluggable Look & Feel, Drag & Drop 173!2.! - Ein Button kann z.b. ein Icon und ein Text beinhalten 173

HALLO SWING 174 174

SWING KOMPONENTEN JFrame JComponent JPanel JScrollPane JButton JLabel JTabbedPane JCheckbox JComboBox JTextField, JTextArea JPasswordField JSlider, JMenuBar,... 175!Vergleiche: http://docs.oracle.com/javase/tutorial/ui/features/components.html 175

SWING EVENTS & LISTENER Package java.awt.event bzw. java.swing.event java.awt.actionlistener ist die Mutter aller EventListener Meist anonyme Klasse, die Interface implementiert 176!2.! - Der ActionListener reagiert auf alle Arten von Events.!! - Meistens macht es Sinn nur auf bestimmte Events zu reagieren,!! dann nimmt man einen spezielleren Listener, z.b. MouseListener.! 0.! - Frage: Warum ist derbutton als final deklariert? 176

SWING LISTENER UND ADAPTER Für jeden Typ von Listener existiert ein Interface, das den Listener definiert. Namensschema: <Typ>Listener Dazu gibt es jeweils eine passende Klasse, die die Event Informationen hält. Namensschema: <Typ>Event Auf Komponenten existiert Methode add<typ>listener(..) Meist existiert eine Adapterklasse, Schema: <Typ>Adapter 177!4.! - Falls mehr als eine Methode im Listener Interface definiert ist, dann existiert meistens!! zusätzlich eine abstrakte Adapterklasse, die das Interface mit leeren Methoden implementiert.!! - Warum könnte das sinnvoll sein?!! - Beispiel: MouseListener definiert 5 Methoden, aber vielleicht interessiert mich nur mouseclicked?!! - Welchen Nachteil hat die Verwendung von Adapterklassen?!! - Man verbaut sich den Weg von einer anderen Klasse zu erben.!! - Die Klassen die auf etwas reagieren, sind meistens mehr als nur Listener!! -> anonyme Überschreibung von Adapterklassen ist daher ratsam. 177

SWING PROMINENTE EVENTLISTENER WindowListener ActionListener KeyListener MouseListener MouseMotionListener 178 178

SWING LAYOUTMANAGER Container#setLayout(LayoutManager mgr) BorderLayout BoxLayout FlowLayout CardLayout GridLayout http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html 179!0.! - Vergleiche http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html! 1.! - Ein BorderLayout teilt den Container in bis zu 5 Teile (Top, Bottom, Left, Right, Center bzw. N, E, S, W, Center).!! - Aller Platz, der übrig bleibt geht in den Center Bereich.! 2.! - BoxLayouts setzen alle Komponenten in eine Reihe oder eine Spalte.!! - Elemente können innerhalb der Reihe/Spalte ausgerichtet werden (left, right, center).! 3.! - FlowLayout stellt alle Elemente in einer Reihe dar.!! - Ein Zeilenumbruch kommt, wenn der Container zu klein wird in der horizontalen.! 4.! - CardLayout stellt einen Manager dar, der verschiedene Elemente zu verschiedenen Zeitpunkten darstellt.!! - Dabei ist immer nur eine Variante von Components zu einer Zeit sichtbar.!! - Funktionalität wie ein JTabbedPane.! 5.! - Elemente werden innerhalb einer definierten Anzahl Zeilen und Spalten angeordnet.!! - Elemente haben alle die gleiche Größe. 179

SWING ZEICHNEN 180 180

JAVAFX Ähnlich zu Swing, aber komfortabler Superklasse Node bzw. Control MVC Sourcen (sind bei Java 8 enthalten) Grafik von http://en.wikipedia.org/wiki/file:mvc-process.png 181!1.! - Konzept der Layout Manager ist vorhanden, allerdings etwas moderner.!! - EventListener sind analog zu Swing, allerdings auch hier etwas moderner.!! - Eingabeelemente sind ähnlich, aber auch mit modernerer API.! 2.! - Ähnlich zu Swing, allerdings anderer Name.! 3.! - Stärkeres MVC Pattern als bei Swing.!! - Es gibt Models, Views und Controller.!! - Model = Datenhaltung.!! - Views = Präsentationsschicht.!! - Controller = Enthalten eigentliche Logik.!! - Wird gleich im Beispiel gezeigt. 181

JAVAFX GUI ELEMENTE 182 Grafik von http://docs.oracle.com/javafx/2/ui_controls/overview.htm!dokumentation von oracle ist sehr gut!!!siehe:! http://docs.oracle.com/javafx/2/ui_controls/overview.htm! http://docs.oracle.com/javafx/2/layout/builtin_layouts.htm 182

JAVAFX SCENEBUILDER Grafischer Editor.fxml und @FXML http://www.oracle.com/technetwork/java/javafx/tools/ index.html Gezeigt während der Live-Dome:! # Anlegen neues intellij JavaFX Projekt! # Aufbau GUI!! - Library!! - Hierarchy!! - Scene!! - Layout!!! - fx:id Attribut!!! - Code Tab würde ich erstmal nicht benutzen!! # Gui Elemente!!! - Containers!!! - Layouts!!! - Wrap in Layout!! - Controls! # Größen!! - Computed_Size! -- Typically, the computed size is just big enough for the control and the label to be fully visible.!! - Preferred_Size! -- If you want more control over the size of controls in your UI, you can set their preferred size range directly.!!# FXML kann natürlich auch per Texteditor bearbeitet werden! 183! - Wie setzen wir einen Controller!! - Wie verwende ich Controls mit fx:id?!! 183

WICHTIGE DINGE ÜBER JAVAFX.fxml und @FXML javafx.fxml.initializable ObservableList und FXCollections Inhalt eines Packages Dokumentation ist sehr gut 184!1.! - Annotation @FXML macht autobinding von Variable zu konkretem Control in der Oberfläche mittels fx:id.! 2.! - Interface Initializable kann als Controller einer Oberfläche gesetzt werden.!! - initialize(url url, ResourceBundle resourcebundle) wird aufgerufen zur Initialisierung.! 3.! - Es ist von Haus aus möglich CSS zum Styling zu verwenden.!! - Für Designer sehr angenehm, eher der webbasierte Weg.! 4.! - Inhalt eines Packages sollten in JavaFX sein: Alles was zu einer View dazugehört.!!! - View Klasse!!! - Controller Klasse!!! - CSS Datei!!! - Helfer Klassen!! - Modell ist separat, da es meistens View-übergreifend ist.! 5.! - http://www.oracle.com/technetwork/java/javafx/documentation/index.html!! - http://docs.oracle.com/javafx/2/ui_controls/overview.htm!! - http://docs.oracle.com/javafx/2/layout/builtin_layouts.htm 184

ZU INSTALLIEREN Aktuelles Oracle JDK IntellIj oder efxclipse.org -> Vollständige eclipse Distribution SceneBuilder 185 185

HAPPY HACKING 186 186