Java GUI Entwicklung mit Swing

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

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Programmieren mit Swing

GroupLayout Anmerkung

GUI Programmierung mit javax.swing

...erinnern Sie sich? oopjs4b / kwhbkd4r

Fachhochschule Fulda Fachbereich Angewandte Informatik. Hausarbeit Seminar: Java3D. Java Layout-Manager WS 2002/2003

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Objektorientierte Software-Entwicklung

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

JAVA Oberflächen mit Swing

Swing Grundlagen. Andre Eichmann

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

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

Swing Lernen am Code Teil 1

JAVA Oberflächen mit Swing

GUI Programmierung mit JAVA Swing

Layout Manager. Astrid Beck FHT Esslingen

Einführung in die objektorientierte Programmierung

Einführung in Swing. Graphical User Interface

Swing : Komponeneten I (Teil 1) Was ist Swing?

Grundkurs Programmieren in Java

Swing :Komponenten I (Teil 2)

Objektorientierte Softwareentwicklung

Grafische Benutzeroberflächen

Entwicklung von E-Learning Komponenten zur Computergrafik

Universität VL 13 VL 13 GUI-Programmierung mit Swing Osnabrück Informatik B - Objektorientierte Programmierung in Java Vorlesung 13: GUI 3: Swing

Apache HTTP Server Administration

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

Mensch-Maschine-Interaktion

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

Objektorientierte Programmierung

GUI. Programmiermethodik. Eva Zangerle Universität Innsbruck

Unix/Linux Grundlagen für Einsteiger

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

Grundkurs Programmieren in Java

Ausgewählte Implementierungsprobleme

Grafische Benutzeroberflächen

Solaris Virtualisierung mit ZFS und Container (Zonen)

JSP und Servlet Programmierung

Linux Cluster mit Pacemaker und Heartbeat 3

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

5. Java Swing Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006

GUI Programmierung in Java

Medientechnik. Übung 2 Java Swing

WebSphere Application Server Installation

.* java.awt.* YOU ARE HERE. Graphische Benutzungsoberflächen. GUI-Bibliotheken in Java: JFC. Unterschied AWT - Swing

Einstieg in die Informatik mit Java

Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing

Funktionale und Objekt-Orientierte Programmierkonzepte

Grafische Benutzungsschnittstellen (GUIs) mit Swing

IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

Programmieren II. Menü-Klassen in Java. Menüs. Menüs. Action. Dr. Klaus Höppner. GridBagLayout. Hochschule Darmstadt SS 2008

GUI-Programmierung in Java

IBM DB2 UNIX/Linux/Windows Backup und Hochverfügbarkeit mit HADR

Apache HTTP Server Administration

PHP Programmierung. Seminarunterlage. Version 1.02 vom

Linux Hochverfügbarkeits-Cluster

Tomcat Konfiguration und Administration

Oracle Cloud Control. Seminarunterlage. Version vom

Vorlosung: Swing: Erstellen eines JFrames mit GridBagLayout

Grafische Benutzeroberflächen mit Swing

Techniken der Projektentwicklung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

Java Performance Tuning

2. Programmierung von Benutzungsschnittstellen

MySQL Administration. Seminarunterlage. Version 3.02 vom

Oracle Backup und Recovery mit RMAN

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

Vorlesung 13. Sitzung Grundlegende Programmiertechniken

IBM Informix Tuning und Monitoring

Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java

Grafische Benutzungsschnittstellen (GUIs) mit Swing

14 Swing-Komponenten , Prof. Dr. D. Ratz

Aufbau einer typischen Java-Datei

Graphical User Interfaces

GUI-Programmierung mit Java-Swing

Big Data Informationen neu gelebt

7.1 Übersicht Geschichte von swing

IBM Informix Dynamic Server Hochverfügbarkeits-Technologien unter Unix

Liste Programmieren Java Überblick

Transkript:

Seminarunterlage Version: 5.03 Version 5.03 vom 13. Februar 2014

Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Firmen und beziehen sich auf Eintragungen in den USA oder USA-Warenzeichen. Weitere Logos und Produkt- oder Handelsnamen sind eingetragene Warenzeichen oder Warenzeichen der jeweiligen Unternehmen. Kein Teil dieser Dokumentation darf ohne vorherige schriftliche Genehmigung der weitergegeben oder benutzt werden. Die besitzt folgende Geschäftsstellen Adressen der Westernmauer 12-16 D-33098 Paderborn Tel.: (+49) 0 52 51 / 10 63-0 An der alten Ziegelei 5 D-48157 Münster Tel.: (+49) 02 51 / 9 24 35 00 Marlene-Dietrich-Str. 5 D-89231 Neu-Ulm Tel.: (+49) 07 31 / 9 85 88 550 Kreuzberger Ring 13 D-65205 Wiesbaden Tel.: (+49) 06 11 / 7 78 40 00 Wikingerstraße 18-20 D-51107 Köln Tel.: (+49) 02 21 / 8 70 61 0 Internet: http://www.ordix.de Email: training@ordix.de Seite 2 Version: 5.03

Inhaltsverzeichnis 1 Entstehung von Swing und Unterschiede zum Awt... 7 1.1 Historie der Grafikbibliotheken in Java... 8 1.2 Awt - Paket java.awt... 9 1.3 Swing - Paket javax.swing... 10 1.4 Unterschiede zwischen Swing und Awt... 11 2 Grundlegende Swing-Container und Komponenten... 12 2.1 Container und Komponenten... 13 2.2 Beispiel für Container mit Komponenten... 14 2.3 Unterteilung der Container... 15 2.4 Das contentpane... 16 2.5 Die Klasse JFrame... 17 2.6 JFrame()-Konstruktoren... 18 2.7 settitle()-methode... 19 2.8 Fenster anzeigen... 20 2.9 pack()- und setsize()-methoden... 21 2.10 setvisible()-methode... 23 2.11 setdefaultcloseoperation()-methode... 24 2.12 Window-EventWindow-Event... 25 2.13 Anwendung schließen... 26 2.14 processwindowevent()-methode... 27 2.15 Ein einfaches Fenster... 28 2.16 Die Klasse JDialog... 29 2.17 JDialog()-Konstruktoren... 30 2.18 Ein einfacher Dialog... 32 2.19 Die Klasse JPanel... 33 2.20 JPanel()-Konstruktoren... 34 2.21 JPanel hinzufügen... 35 2.22 Komponenten hinzufügen... 36 2.23 Atomare Komponenten... 37 2.24 Ein grafischer Überblick... 39 2.25 Die Klasse JLabel... 40 2.26 JLabel()-Konstruktoren... 41 2.27 Inhalt eines JLabel ändern / abfragen... 43 2.28 Aussehen eines JLabel ändern / abfragen... 44 2.29 Swing-Konstanten zur Beschreibung der Ausrichtung... 45 2.30 Die Klasse JTextField... 46 2.31 JTextField()-Konstruktoren... 47 2.32 Inhalt eines JTextField ändern / abfragen... 48 2.33 Einige Methoden eines JTextField... 49 2.34 Schaltflächen... 50 2.35 Methoden von JComponent/ AbstractButton... 51 2.36 Methoden der Klasse AbstractButton... 52 2.37 Beispiel zu den Methoden... 54 2.38 Die Klasse JButton()und ihre Konstruktoren... 56 2.39 Einige nützliche Methoden der Klasse JButton()... 57 2.40 Die Klassen JRadioButton() und JCheckBox()... 58 2.41 JRadioButton() und JCheckBox()-Konstruktoren... 59 2.42 Die Klasse ButtonGroup()... 61 2.43 Die Klasse JComboBox()... 62 2.44 JComboBox()-Konstruktoren... 63 2.45 Methoden der Klasse JComboBox... 64 2.46 Beispiel für eine JComboBox... 68 3 Der Layout Manager... 69 Version: 5.03 Seite 3

3.1 Der Layout-Manager... 70 3.2 Vor und Nachteile von Layout-Managern... 71 3.3 Layout-Manager zuweisen und abfragen... 72 3.4 Das BorderLayout... 73 3.4.1 Horizontaler und Vertikaler Abstand... 74 3.4.2 Grafik zum BorderLayout... 75 3.4.3 Beispiel zum BorderLayout... 76 3.5 Das FlowLayout... 77 3.5.1 Ausrichtung im FlowLayout... 78 3.5.2 Grafiken zum FlowLayout... 79 3.5.3 Beispiel zum FlowLayout... 80 3.6 Das GridLayout... 81 3.6.1 Spalten- und Zeilenanzahl... 83 3.6.2 Grafiken zum GridLayout... 84 3.6.3 Beispiel zum GridLayout... 85 4 Event Handling - Es tut sich was...... 86 4.1 Einfaches Fenster mit Swing ohne Event Handling... 87 4.2 Fenster schließen... 88 4.3 Event-Modell... 89 4.4 Events, Listener und Methoden... 91 4.5 Registrieren als Event-Listener... 93 4.6 Interfaces... 94 4.7 Beispiel Fenster schließen mit einem Interface... 95 4.8 Adapterklassen... 98 4.9 Beispiel Fenster schließen mit normaler Adapterklasse... 99 4.10 Beispiel Fenster schließen mit lokaler Adapterklasse... 101 4.11 Beispiel Fenster schließen mit anonymer Adapterklasse... 102 4.12 Implementierung mehrerer Event-Listener... 103 4.13 Event-Listener für zwei Buttons - erste Variante... 104 4.14 Event-Listener für zwei Buttons - zweite Variante... 105 4.15 Threads und Swing-Komponenten... 106 4.16 Klasse SwingUtilities... 107 4.17 Beispiel invokeandwait(runnable dorun)... 108 4.18 Klasse SwingWorker... 111 4.19 Zusammenfassung... 116 5 Das Model-View-Controller Entwurfsmuster... 117 5.1 Was ist das Model-View-Controller Entwurfsmuster?... 118 5.2 Swing Komponenten-Architektur und MVC... 121 5.2.1 JComponent... 122 5.2.2 View-Controller-Klassen... 123 5.2.3 Anwendungsbeispiele... 128 5.2.4 Beobachter und Beobachtete... 133 5.2.5 Austauschbares Look&Feel... 138 6 Komplexe Swing-Container... 139 6.1 Überblick... 140 6.2 Die Klasse JSplitPane()... 141 6.3 Positionierung in einer JSplitPane()... 142 6.4 Einige nützliche Methoden zur JSplitPane... 144 6.5 Grafik zur JSplitPane()... 145 6.6 Beispiel zur JSplitPane()... 146 6.7 Die Klasse JTabbedPane()... 147 6.7.1 Hinzufügen neuer Karteikarten... 148 6.7.2 Weitere Methoden zur JTabbedPane()... 150 6.7.3 Grafik zur JTabbedPane()... 152 6.7.4 Beispiel zur JTabbedPane()... 153 Seite 4 Version: 5.03

6.8 Die Klasse JTree()... 155 6.8.1 Grafik zu JTree()... 156 6.9 Die Klasse JToolbar()... 157 6.9.1 JToolBar() Konstruktoren... 158 6.9.2 Hinzufügen von Elementen zur JToolBar()... 159 6.9.3 Grafik zur JToolBar()... 160 6.9.4 Beispiel zur JToolBar()... 161 6.10 Die Klasse JOptionPane()... 163 6.10.1 showxxxxdialog()-methoden... 164 6.10.2 Grafik zur JOptionPane()... 165 6.10.3 Einige wichtige Parameter... 166 6.10.4 Rückgabewerte einiger Dialoge... 168 6.10.5 Beispiel für die Methode showmessagedialog()... 169 6.10.6 Beispiel für die Methode showconfirmdialog()... 170 6.10.7 Beispiel für die Methode showinputdialog()... 171 6.11 6.27 Die Klasse JFileChooser()... 172 6.11.1 Grafik zu JFileChooser... 173 6.11.2 Einige nützliche Methoden... 174 7 LayoutManger: GridBagLayout... 175 7.1 Das GridBagLayout... 176 7.2 gridx und gridy... 177 7.3 gridwidth und gridheight... 178 7.4 fill... 179 7.5 ipadx, ipady und insets... 180 7.6 anchor... 181 7.7 weightx und weighty... 182 7.8 Anlegen eines GridBagConstraints... 183 7.9 Setzen der Constraints... 184 7.10 Informationen zu den folgenden Grafiken... 186 7.11 Grafiken zum GridBagLayout... 187 7.12 Beispiel zum GridBagLayout (Rahmen)... 188 7.13 Beispiel Initialisierung der Schaltflächen... 189 8 LayoutManager: GroupLayout... 191 8.1 GroupLayout... 192 8.2 Prinzip des GroupLayout... 193 8.3 Beispiel mit drei Komponenten... 194 8.4 LayoutGroups... 195 8.5 Layout entlang der Achsen... 196 8.6 Beispiel mit vier Komponenten... 197 8.7 Erzeugen einer parallelen Gruppe... 199 8.8 Ausrichtung innerhalb paralleler Gruppen... 200 8.9 Erzeugen einer sequentiellen Gruppe... 201 8.10 Komponenten zu einer Gruppe hinzufügen... 202 8.11 Gruppen zu einer Gruppe hinzufügen... 203 8.12 Größe/Größenanpassung der Komponenten... 204 8.13 Beispiel Größenanpassung... 205 8.14 Lücken(gaps)... 206 8.15 Automatische Lücken konfigurieren... 207 8.16 Eigene Lücken erzeugen... 208 8.17 Arten von Lücken... 210 8.18 linksize(int axis, Component...components)... 211 8.19 GUI zur Laufzeit anpassen... 212 9 MVC und JTable... 215 9.1 Allgemeines... 216 9.2 Schnell und Einfach... 218 Version: 5.03 Seite 5

9.3 JTable-Einstellungen... 220 9.4 Tabellenmodell... 222 9.5 Schritt für Schritt zum eigenen Tabellenmodell... 227 9.6 Optionale weitere Schritte... 231 9.7 Editieren einzelner Felder... 234 9.8 Änderungen am Renderer... 235 9.9 Änderung des Zellen-Editors... 236 9.10 JTree... 237 10 Look & Feel, Internationalisierung... 238 10.1 Look&Feel... 239 10.1.1 Beispiel Look&Feel... 240 10.1.2 Look&Feel setzen... 241 10.1.3 Beispiel Look&Feel setzen... 242 10.1.4 Parameter für die setlookandfeel()-methode... 243 10.1.5 Wahl des Look&Feel durch den UIManager... 245 10.1.6 Look&Feel zur Laufzeit ändern... 246 10.1.7 Beispiel Look&Feel zur Laufzeit ändern... 247 10.2 Internationalisierung (Locale)... 248 10.2.1 Beispiel Anwendung ohne Internationalisierung... 249 10.2.2 Beispiel Anwendung mit Internationalisierung... 250 10.2.3 Schritte zur Internationalisierung... 252 10.2.4 Sprachcodes... 255 10.2.5 Landescodes... 256 10.2.6 Verfügbare Locale bestimmen... 257 10.2.7 Zahlen... 258 10.2.8 Beträge... 260 10.2.9 Datum... 262 10.2.10 Vordefinierte Datumsformate... 264 10.2.11 Zeit... 265 10.2.12 Vordefinierte Zeitformate... 267 10.2.13 Datum und Zeit gleichzeitig... 268 10.3 Zusammenfassung... 270 Seite 6 Version: 5.03