Einstieg in die Informatik mit Java



Ähnliche Dokumente
Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

Grundlagen der Programmierung APPLETS

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Java: Vererbung. Teil 3: super()

GUI Programmierung in Java

Objektorientierte Programmierung

Objektorientierte Software-Entwicklung

Swing Grundlagen. Andre Eichmann

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr Seite 1 von 5. Teil 2: Aufgaben

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

5.2 Neue Projekte erstellen

4D Server v12 64-bit Version BETA VERSION

Einführung in Eclipse und Java

Applet Firewall und Freigabe der Objekte

Grundlagen von Python

Applets I. Grundlagen der g Applet-Programmierung

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Objektorientierte Softwareentwicklung

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Innere Klassen in Java

2A Basistechniken: Weitere Aufgaben

Übung: Verwendung von Java-Threads

Einführung in die Programmierung

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

GUI Programmierung mit JAVA Swing

Graphische Benutzungsoberflächen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Swing :Komponenten I (Teil 2)

Prinzipien Objektorientierter Programmierung

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Installationsanleitung WibuKey Treiber

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

Applications Applets (eingeschränkte Rechte)

Einführung in die Java- Programmierung

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Benutzeroberflächen. Java Teil 4

Software Engineering Klassendiagramme Assoziationen

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

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

Schedulingund Thread-Ausführer

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

AVS TD 6.2 Einstellungen Design/Schrift (1.7.9_82, )

Version 0.3. Installation von MinGW und Eclipse CDT

Übung 8: Semaphore in Java (eigene Implementierung)

Internet Explorer Version 6

Swing Lernen am Code Teil 1

Algorithmen und Datenstrukturen

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT?

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Windows Server 2008 (R2): Anwendungsplattform

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag)

DeltaVision Computer Software Programmierung Internet Beratung Schulung

Typumwandlungen bei Referenztypen

Schritt 1 - Ein Spielfeld

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Objektorientierte Programmierung

CADEMIA: Einrichtung Ihres Computers unter Windows

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Robot Karol für Delphi

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

GRAFISCHE BENUTZERSCHNITTSTELLEN

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Programmieren in Java

4. AuD Tafelübung T-C3

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

U08 Entwurfsmuster (II)

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

LISP. Eine Einführung

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Eine Anwendung mit InstantRails 1.7

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

Was meinen die Leute eigentlich mit: Grexit?

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

DLLs (dynamic loaded libraries) mit MingW erstellen

Graphical User Interfaces

Software Engineering Interaktionsdiagramme

Client-Server-Beziehungen

C# im Vergleich zu Java

PCC Outlook Integration Installationsleitfaden

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

MPEG2Schnitt (Freeware) - demuxte Videodaten schneiden und verketten. framegenauer Schnitt mit Bild-Ton-Synchronisierung und Fehlerkorrekturen

Kapitel 4. Monitore und wechselseitiger Ausschluss

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Java Einführung Collections

Programmierkurs Java

LPT1 Anschluss mit PCMCIA Karte

Transkript:

1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik

Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet 4 Swing und Threads

Gliederung 3 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet 4 Swing und Threads

Einführendes Beispiel Quelle: http://upload.wikimedia.org/wikipedia/commons/c/cc/gui-widgets.png 4 / 14

Gliederung 5 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet 4 Swing und Threads

6 / 14 Eigenschaften von Swing leistungsfähige Grafikbibliothek baut auf AWT auf ist in Java seit Version 1.2 enthalten Applets werden abgeleitet von javax.swing.japplet, entsprechend JFrame Swing-Komponenten (JButton, JLabel,...) sind in Java geschrieben ( leichtgewichtige Komponenten) im Gegensatz dazu werden Komponenten bei AWT vom Betriebssystem erzeugt ( schwergewichtige Komponenten)

7 / 14 Vor- und Nachteile von Swing Vorteil leichtgewichtiger Komponenten: kein separater Betriebssystemaufruf für das Erzeugen der Komponente Vorteil: flexibler, es sind auch Komponenten möglich, die das Betriebssystem nicht vorsieht bei AWT sind im Gegensatz dazu nur Komponenten möglich, die auf allen Betriebssystemen verfügbar sind Vorteil/Nachteil: gleiches Aussehen auf allen Betriebssystemen Vorteil: wählbares Look-and-Feel (wie Windows, wie Motif/Linux, eigene Java-Version,...) weitere Vorteile wie Tooltips, Drag-and-Drop, Steuerung von Komponenten durch Tastenkombinationen, Multiple Document Interface, Doppelpufferung,... Nachteil: auf älteren Rechnern ist Swing träge aufgrund seiner Komplexität

8 / 14 Ebenen einer Swing-Oberfläche Ein JApplet oder JFrame besteht aus mehreren Ebenen (Container vom Typ Pane): RootPane enthält LayeredPane und GlassPane LayeredPane enthält ContentPane und MenuBar ContentPane enthält die Komponenten MenuBar enthält eine Menüleiste GlassPane ist ein durchsichtiger Container, der über allen anderen Containern liegt Am wichtigsten für Anwendungen ist die ContentPane, sie kann beschafft werden mit Container content = getcontentpane(); Dieser werden Komponenten hinzugefügt mit content.add...

Gliederung 9 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet 4 Swing und Threads

Typisches Swing-Applet 10 / 14 import java. awt. ; import javax. swing. ; public class SwingApplet extends JApplet { JLabel j l ; public void i n i t ( ) { / / zuer st Content Pane beschaffen Container content = getcontentpane ( ) ; / / a l l e Komponenten etc. auf Content Pane content. setbackground ( Color. white ) ; j l = new JLabel ( Ich bin ein Swing JLabel ) ; / / Default Layout bei Swing i s t BorderLayout content. add ( j l, BorderLayout.SOUTH) ; } }

Gliederung 11 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet 4 Swing und Threads

12 / 14 Swing und Threads Swing ist nicht thread-safe: bei paralleler Ausführung mehrerer Threads kann es zu unkontrollierten Effekten kommen Swing-Komponenten sollten stets in einem sogenannten Event Dispatch Thread von AWT ausgeführt werden dieser führt die gesamte Ereignisverarbeitung grafisch-interaktiver Java-Anwendungen aus die Hilfsklasse SwingUtilities stellt zwei Methoden invokelater und invokeandwait bereit diese werden aus anderen Threads heraus aufgerufen und besitzen ein ausführbares Objekt vom Typ Runnable als Parameter

13 / 14 Swing und Threads Sichere Behandlung von Threads unter Swing: der gesamte Aufbau der Oberfläche wird in eine Methode verpackt es wird ein Objekt erzeugt, das das Interface Runnable implementiert; dieses ruft in seiner Methode run die obige Methode auf invokelater reiht das ausführbare Objekt in die Ereigniswarteschlange von AWT ein und kehrt noch vor dessen Ausführung in den aufrufenden Code zurück. Der aufrufende Thread wird also nicht blockiert invokeandwait reiht das ausführbare Objekt in die Ereigniswarteschlange von AWT ein und wartet, bis es abgearbeitet wurde. Der aufrufende Thread wird also blockiert

Typische Thread-Behandlung (Beispiel JFrame) 14 / 14 import javax. swing. ; public class HelloWorldSwing { private s t a t i c void createandshowgui ( ) { JFrame. setdefaultlookandfeeldecorated ( true ) ; JFrame frame = new JFrame ( HelloWorldSwing ) ; frame. setdefaultcloseoperation ( JFrame. EXIT ON CLOSE ) ; JLabel label = new JLabel ( Hello World ) ; frame. getcontentpane ( ). add ( label ) ; frame. pack ( ) ; frame. s e t V i s i b l e ( true ) ; } } public s t a t i c void main ( S t r i n g [ ] args ) { javax. swing. S w i n g U t i l i t i e s. invokelater (new Runnable ( ) { public void run ( ) { createandshowgui ( ) ; } } ) ; }