Neues Kapitel: Threads, Prozesse und GUIs. Verteilte Systeme Hochschule Regensburg Vorlesung 3, Universitätsstraße 31, Regensburg

Größe: px
Ab Seite anzeigen:

Download "Neues Kapitel: Threads, Prozesse und GUIs. Verteilte Systeme Hochschule Regensburg Vorlesung 3, 11.04.2012 Universitätsstraße 31, 93053 Regensburg"

Transkript

1 Neues Kapitel: Threads, Prozesse und GUIs Hochschule Regensburg Vorlesung 3, Universitätsstraße 31, Regensburg Prof. Dr. Jan Dünnweber Die Kommunikation (s. vorherige Vorlesung) findet zwischen Prozessen (Programmen in Ausführung) statt Prozess als Konzept stammt aus dem Betriebssysteme-Bereich Inhalt des Kapitels: Das Konzept von Thread vs. Prozess Aufbau von Clients und Servern mit Threads Implementierung von GUIs mit Swing und Servlets Prof. Dr. Jan Dünnweber, Folie 2 von 27 Prozesse und Threads Prozess: ein in Ausführung befindliches Programm, mit seinen Daten, Dateien, Registern, etc. Auf konventionellen Rechnern (z.b. PCs) arbeiten Prozesse i.d.r. nebenläufig zueinander auf einer CPU, d.h. sie teilen den Prozessor unter sich Das Betriebssystem sorgt für die Nebenläufigkeits-Transparenz: der Benutzer weiss nichts von den fremden Prozessen Das Umschalten des Prozessors zwischen den Prozessen ist aufwendig: der alte Adressraum muß gerettet und der neue geladen werden sog. Kontextwechsel Threads sind Prozessen ähnlich, jedoch können mehrere Threads unter sich einen Adressraum teilen: + Man gewinnt Leistung: Kontextwechsel ist viel schneller Man verliert evtl. an Transparenz: der Anwender ist zuständig für die korrekte, konfliktfreie nebenläufige Ausführung Threads in der nicht-verteilten Welt Viele konventionelle Anwendungen laufen schneller mit mehreren Threads, z.b. ein Thread ist verantwortlich für Berechnungen und einer für die GUI-Interaktionen Derartige funktionelle Strukturierung ist häufig auch softwaretechnisch sinnvoll (vgl. 3-tier architecture und andere Schichtenmodelle) Mehrere Threads auf Multiprozessor-Systemen benutzen verschiedene CPUs einer Maschine, mit Leistungssteigerung Prof. Dr. Jan Dünnweber, Folie 3 von 27 Prof. Dr. Jan Dünnweber, Folie 4 von 27

2 Implementierung von Threads Ein Thread-Paket kann zweierlei implementiert werden Implementierung als Thread-Bibliothek auf Benutzerebene Einfach/billig Threads zu erzeugen/zerstören Ein Kontextwechsel ist schnell (wenige Anweisungen) Ein blockierender Aufruf (z.b. I/O) in einem Thread blockiert alle anderen Threads des gleichen Prozesses Implementierung im Kernel des Betriebssystems: Keine Blockierung, dafür aber ist für jede Thread-Operation ein Systemaufruf erforderlich Kontextwechsel fast genauso teuer wie für einen Prozess Aktuell wird hybride Lösung favorisiert, mit LWP (Light-Weight Processes): eine Mischung aus Benutzerebene und BS-Kernel. Java Threads Java ist erste universelle Programmiersprache, die Threads direkt auf Sprachebene unterstützt Threads in Java I: Erben von Klasse Thread Implementierung von Java Threads Wie auch viele andere Konzepte in der Java-Welt, werden Threads über Klassen bzw. Vererbung zur Verfügung gestellt Erste Methode der Thread-Deklaration in einem Java Programm: Die Java-Klasse Thread beinhaltet eine (ursprünglich leere) Methode run() Die Benutzer-Klasse MyThread wird als Unterklasse von Thread deklariert Die (vererbte) Methode run() wird in MyThread überschrieben Prof. Dr. Jan Dünnweber, Folie 5 von 27 Prof. Dr. Jan Dünnweber, Folie 6 von 27 Threads in Java I: Erben von Klasse Thread (Forts.) Threads in Java II: Implementieren von Runnable class MyThread extends Thread { public void run() {... } }... Thread a = new MyThread(); Thread run(){} MyThread run(){...} Klassendiagramm in UML-Notation Unif. Modeling Lang. Nachteil der ersten Methode: Abgeleitete Klasse (wie MyThread) darf von keiner anderen Klasse erben, da Java die Mehrfachvererbung verbietet Zweite Methode der Thread-Deklaration in Java Programmen: Java-Interface Runnable enthält abstrakte Methode run() Die Benutzer-Klasse MyRunnable implementiert Runnable, indem sie die Methode run() definiert Merke: die Java-Klasse Thread implementiert Runnable ebenfalls Vor- und Nachteile der zweiten Methode: + Kann von anderen Klassen erben Kann Instanzmethoden von Thread nicht direkt benutzen. Umweg: über die Klassenmethode currentthread() erhält man die Referenz auf den aktuellen Thread in der run-methode Prof. Dr. Jan Dünnweber, Folie 7 von 27 Prof. Dr. Jan Dünnweber, Folie 8 von 27

3 Zweite Methode: UML Diagramm und Java-Deklaration Z.B. für ein Panel: Runnable run(){} MyRunnable run(){...} target Thread class MyRunnable extends java.awt.panel implements Runnable { public void run() {... } }... Thread a = new Thread(new MyRunnable()); Threads in Java I und II: Erzeugen und Starten Ein Thread ist immer ein Objekt der Klasse Thread und wird (wie jedes Java-Objekt) mit new von einem Konstruktor erzeugt: Bei der ersten Methode: Thread a = new MyThread(); Bei der zweiten Methode: Thread a = new Thread(new MyRunnable()); oder (in der Klasse MyRunnable): Thread a = new Thread(this); In beiden Fällen kann der Konstruktor ein String-Argument haben (der Name des Threads, wird zum Debuggen benutzt); sonst bekommen die Threads ihre Namen vom System in der Erzeugungsreihenfolge: Thread-1, Thread-2,... Beachte: Ein erzeugter Thread existiert zwar, läuft aber nicht! Thread muß in beiden Fällen explizit gestartet werden: a.start(); was die Ausführung seiner run() Methode veranlaßt. Prof. Dr. Jan Dünnweber, Folie 9 von 27 Prof. Dr. Jan Dünnweber, Folie 10 von 27 Threads in verteilen Systemen: Client Client: Benutzeroberflächen Threads erlauben blockierende Systemaufrufe, ohne dass der gesamte Prozess blockiert wird In einem verteilten System erlaubt dies: Kommunikation über mehrere logische Verbindungen Das Verbergen langer Latenzzeiten in Weitverkehrsnetzen (Latenzen bis in den Sekundenbereich sind üblich) Beispiel Web-Browser: Es wird versucht, mit dem Anzeigen einer HTML-Seite anzufangen, noch bevor sie voll übertragen wurde So kommen Textsegmente früher als die Bilder Multithreaded Browser: es werden separate Threads aktiviert, jeder richtet eine separate Verbindung zum Server ein und empfängt die Daten So ein Multithreaded-Client ist besonders vorteilhaft, wenn der Webserver über mehrere Maschinen repliziert ist: jeder Thread kommuniziert mit eigener Replik Benutzeroberfläche (GUI) eine der wichtigsten Funktionen bei einem Client Manchmal ist die Benutzeroberfläche in die Hardware integriert, z.b. Display+Tastatur in Handys, evtl. Spacherkennung, etc. Die Oberfläche verbirgt vom Benutzer, dass verschiedene Anwendungsteile von versch. Programmen verarbeitet werden; ein Teil geändert andere werden benachrichtigt Multithreading ist ein elementarer Bestandteil beinahe jeder Benutzeroberfäche. Warum? a closer look at Java Swing... Prof. Dr. Jan Dünnweber, Folie 11 von 27 Prof. Dr. Jan Dünnweber, Folie 12 von 27

4 Java Maskottchen Duke by Oracle Corp. JPanel repaint() Oracle Java Swing - Die Welt in der wir uns bewegen Technologie: Swing, die standard Java Bibliothek für graphical user interfaces (GUIs) Swing GUIs sind plattformunabhängig Prinzip: Ableiten von Basis-Komponenten (Widgets) & Überschreiben anwendungsspezifischer Details Alternativen: Qt/Gnome (Linux), Motif (Solaris), Aqua/Cocoa & Quartz (Mac), MFC (Windows), AWT Swing & Multithreading: Warum programmiert man GUIs multi-threaded und was ist dabei zu beachten? Multithreading & Swing: Einführendes Beispiel Animation mit interaktiver Kontrolle Start/Stop-Button: Würfel drehen oder anhalten Reset-Button: Würfel auf Ausgangsposition Schieberegler: Geschwindigkeit oder Drehrichtung ändern 1 Responsivität: GUI darf nicht blockieren 2 Ereignisverarbeitung: GUIs sind implizit multithreaded 3 Thread-Sicherheit: Threads dürfen sich gegenseitig nicht behindern Hierfür ist der Programmierer verantwortlich Nur bei paralleler Verarbeitung von Programmund Benutzeraktivität gelingt das Zusammenspiel Daher im Folgenden intensive Architekturund Code-Analyse (7 slides of code...) Prof. Dr. Jan Dünnweber, Folie 13 von 27 Prof. Dr. Jan Dünnweber, Folie 14 von zurück zum Beispiel: Ein Blick auf die Architektur Beim Design der Beispielanwendung wurde das Architektur-Pattern Model-View-Controller umgesetzt Direkte Referenzen: Event-Dispatching Main Thread Thread Controller Model, Controller Controller View und HochschuleMain.java View Model. View ChangeListener setchanged() Model Dashboard.java RedCube.java Event-Dispatching User Thread Thread User Thread Indirekter Zugriff von Model View und View Controller. Multithreading in allen Komponenten Ein- und Ausgabe-Logik im Event Dispatching Thread Vorteil: Austauschbare Kompenenten, z.b. verschiedene Views und Controller in Swing- und Web-Oberfläche für das gleiche Model Darstellung (User Thread) läuft unabhängig von der Verarbeitung von Programm- und Systeminteraktionen deep dive into the code: Wie funktioniert sowas? (1/7) Der Konstruktor der Controller-Klasse (HochschuleMain) initialisiert View (Dashboard) & Model (RedCube): public class HochschuleMain implements ActionListener, ChangeListener { public static final int WIDTH = 360, HEIGHT...; public static final String TITLE ="HS München"; private int width, height, inset; private Dashboard controls; private RedCube cube; public HochschuleMain(Container content) { this.inset = INSET;this.width = WIDTH;... cube = new RedCube(width, height); controls = //this = ActionListener & ChangeListener new Dashboard( content, cube, this, this ); controls.setup( ); }... Prof. Dr. Jan Dünnweber, Folie 15 von 27 Prof. Dr. Jan Dünnweber, Folie 16 von 27

5 Controller continued: Implizites Multithreading (2/7) Hauptprogramm: Die main-methode (3/7) actionperformed und statechanged Schnittstellen-Methoden zur Verarbeitung von Eingaben im Event Dispatching Thread: public void actionperformed(actionevent push) { JButton button = (JButton)pushed.getSource( ); String label = button.gettext( ); if (label.equals(dashboard.start)) { button.settext(dashboard.stop); cube.resumerotation( ); } else if (label.equals(dashboard.stop)) { button.settext(dashboard.start); cube.stoprotation( ); } else if (label.equals(dashboard.reset)) { cube.reset( ); } else System.exit(0); } public void statechanged(changeevent slide) { cube.setvelocity(controls.getvelocity( )); } Die invokelater-methode der SwingUtilities macht das Setup explizit zu einer Aufgabe des Event Dispatching Threads: public static void main(string[] args) { SwingUtilities.invokeLater(new Runnable() { public void run( ) { JFrame frame = new JFrame(TITLE); Container content = frame.getcontentpane( ); HochschuleMain rotation = new HochschuleMain(content); frame.setsize(... );... frame.setdefaultcloseoperation( WindowConstants.EXIT_ON_CLOSE );... new Thread(rotation.cube).start(); rotation.cube.stoprotation( );// start resting... frame.setvisible(true); } }); } Prof. Dr. Jan Dünnweber, Folie 17 von 27 Prof. Dr. Jan Dünnweber, Folie 18 von 27 View-Komponente Dashboard: Widget Layout (4/7) Business Logic: Das Model, RedCube in Java (5/7) Komponenten-Setup, inklusive Hinzufügen der Listener: public class Dashboard extends GridBagLayout { final static String START = "Start",...; // const private JSlider velocity;... // member variables public Dashboard(Container c, RedCube cube, ActionListener buttons, ChangeListener adjuster) { this.content = c; this.cube = cube; velocity = new JSlider(..); start = new JButton(..); constraints = new GridBagConstraints( ); start.addactionlistener(buttons);... velocity.addchangelistener(adjuster);... } public void setup() { content.setlayout(this); constraints.fill = GridBagConstraints.BOTH;......content.add(cube, constraints);...}... Logo laden, Kachel mit dem Würfel mittels Advanced Imaging API (JAI) ausschneiden und für die Rotation vorbereiten: import javax.media.jai.jai; //... class RedCube extends JPanel implements Runnable { final static int DEFAULT_ANGLE = 22,...; // const private int width, height, inset, angle...;// members public RedCube(int width, int height) { velocity = DEFAULT_VELOCITY;... paused = new ReentrantLock( ); // deadlock save running = paused.newcondition( ); // thread control... b = ImageIO.read(new File(SOURCE_FILE));... TiledImage cubedata = // extract cube data source.getsubimage(cubeorigin,... cubesize); cubesettings = new ParameterBlockJAI("rotate");... cubesettings.addsource(cubedata); setdoublebuffered(true); } Prof. Dr. Jan Dünnweber, Folie 19 von 27 Prof. Dr. Jan Dünnweber, Folie 20 von 27

6 Parallele Berechnung und Darstellung (6/7)... und schließlich: Thread-Kontrolle im RedCube (7/7) Die Methode paintcomponent läuft im Event Dispatching Thread während die run-methode explizit im User Thread läuft: public void paintcomponent(graphics handle) { handle.drawimage( background,... ); cubesettings.setparameter("angle",... angle)); RenderedOp op = JAI.create("rotate", cubesettings); cube = op.getrendering( ).getasbufferedimage( );... handle.drawimage(cube... cubesize); } public void run( ) { for ( ; ; ) { while (suspended) { paused.lock( ); running.awaituninterruptibly( ); paused.unlock( ); } rotate(angle = angle + direction % 360); try { Thread.sleep(20 velocity); } catch (InterruptedException e) { } } }... public void setvelocity(int velocity) { if (velocity >= DEFAULT_VELOCITY) { this.direction = DEFAULT_DIRECTION; this.velocity = velocity; } else { this.direction = DEFAULT_DIRECTION; this.velocity = MAX_VELOCITY velocity; } } public void rotate(int angle) { this.angle = angle; repaint( ); } public void stoprotation( ) { paused.lock( ); suspended = true; paused.unlock( ); } public void resumerotation( ) { paused.lock( ); suspended = false; running.signal( ); paused.unlock( ); } Prof. Dr. Jan Dünnweber, Folie 21 von 27 Prof. Dr. Jan Dünnweber, Folie 22 von 27 Was haben wir aus dem Quelltext des Beispiels gelernt? GUIs erfordern Programmiermethodik, die das Multithreading berücksichtigt: Komponenten sind i.a. nicht thread-safe! Grundregel für Swing: Generieren und manipulieren Sie alles ausschließlich innerhalb des Event Dispatching Thread! noch einfacher: Verwenden Sie niemals getgraphics! Innerhalb des Event Dispatching Thread laufen: 1 Die CallBack-Methoden von JComponent und abgeleiteten Klassen: paintcomponent, paintborder & paintchildren 2 Aktivitäten, die Sie mittels SwingUtilities steuern: invokeandwait(runnable activity): Synchron mit dem aufrufenden Thread, d.h. Folgeanweisungen warten invokelater(runnable activity): Asynchron, d.h. der aufrufende Thread arbeitet nebenläufig weiter Aktivieren Sie den Event Dispatching Thread mittels repaint (Ausnahme: bei heavyweight Komponenten update verwenden) AWT & Swing, heavyweight vs. lightweight Alle Swing Komponenten (JFrame, JPanel,...) haben einen heavyweight-ancestor im Abstract Window Toolkit (AWT) AWT-Komponenten (Frame, Panel,...) sind mittels nativer UI-Ressourcen des zugrunde liegenden OS umgesetzt Mittels update lässt sich die Darstellung von Komponenten des AWT im Event Dispatching Thread (inkrementell) steuern Wie im Beispiel gezeigt, erfordert auch Swing eine Abstimmung mit dem Event Dispatching Thread Die Bedienung von Swing ist aber einfacher: 100%-Java lightweight-komponenten Größere Auswahl als im AWT Mehr Features (Double-Buffering, Tooltips etc.) AnpassungenanheavyweightKomponentenerfordernEingriffeindieDarstellungshierarchie (mittels super.paintcomponent) Regel: Vermeiden Sie das Mischen von Komponententypen und bevorzugen Sie lightweight Komponenten Prof. Dr. Jan Dünnweber, Folie 23 von 27 Prof. Dr. Jan Dünnweber, Folie 24 von 27

7 Mutual Exclusion in GUIs Im Beispiel wurde Thread-Safety mittels concurrent.locks anstelle von klassischen synchronized Monitoren realisiert Vorteil: concurrent.locks ermöglichen die differenziertere Vergabe von Sperren Locks sind etwas komplizierter zu bedienen, aber flexibler als die Monitormethoden der Klasse Object Keine Bindung an die Blockstruktur des Programms Es existieren nicht-blockierende Varianten des Wartens auf ein Lock-Objekt (polling): 1 boolean trylock( ); 2 boolean trylock(long time, TimeUnit u); Anleitung: Locks & Conditions wie im Beispiel verwenden Alle Lock-Klassen implementieren die Schnittstelle: public interface Lock { void lock( ); void lockinterruptibly( ) throws...; boolean trylock(long time, TimeUnit unit); void unlock( ); Condition newcondition( ); } special features: Preemtion und Timeouts zur Deadlock-Vermeidung Conditions funktionieren in Java wie wait & notify Die Freigabe von Conditions kann aber an mehrere, unterschiedliche Bedingungen geknüpft sein: public interface Condition { void await( ); void awaituninterruptibly( );... void signal( ); void signalall( ); } Vorsicht : Sind signal oder await nicht von lock und unlock-aufrufen umschlossen, so folgt eine IllegalMonitorStateException! Prof. Dr. Jan Dünnweber, Folie 25 von 27 Prof. Dr. Jan Dünnweber, Folie 26 von 27 Zusammenfassung und Ausblick Swing ist ein high-level Framework für die GUI-Programmierung. Eine Alternative in Java ist das lower-level Abstract Window Toolkit (AWT) Ein zentraler Bestandteil der GUI-Programmierung ist das Multithreading. Ereignisse (z.b. Benutzereingaben) werden parallel zum Programmfortschritt verarbeitet Ein flexibles Architekturmuster ist Model-View-Controller. Bei der Implementierung kommt es u.a. auf die korrekte Thread-Koordination an. Im Beispiel wurde diese mittels concurrent.locks und Conditions (Deadlock-frei) realisiert Eine Portierung ins Web erfordert lediglich Anpassungen an View und Controller Prof. Dr. Jan Dünnweber, Folie 27 von 27

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

GUI Programmierung mit JAVA Swing

GUI Programmierung mit JAVA Swing GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische

Mehr

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

GRAFISCHE BENUTZERSCHNITTSTELLEN

GRAFISCHE BENUTZERSCHNITTSTELLEN Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind

Mehr

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

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

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

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

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

Mehr

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

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

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog. Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung

Mehr

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

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

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

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:

Mehr

Benutzeroberflächen. Java Teil 4

Benutzeroberflächen. Java Teil 4 Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in

Mehr

Grafische Benutzeroberflächen mit Swing

Grafische Benutzeroberflächen mit Swing Grafische Benutzeroberflächen mit Swing KW 30, Zentralübung Informatik II 2006-07-24 Klausur: Stichpunkte 1. Auswertung System.out.println("abc" instanceof String); Ergebnis von instanceof ist ein boolean,

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

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

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Funktionale und Objekt-Orientierte Programmierkonzepte

Funktionale und Objekt-Orientierte Programmierkonzepte Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

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

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT? Java -The Standard Widget Toolkit- Inhaltsverzeichnis 1. Was ist? - Vorteile von - Nachteile von 2. Vorbereitungen für 3. Das erste Programm in 4. Widgets und Styleparameter 5. - Layouts Was ist ein Widget?

Mehr

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

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

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

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Ein wichtiges Konzept der Software-Architektur

Ein wichtiges Konzept der Software-Architektur Ein wichtiges Konzept der Software-Architektur Dr. Peer Kröger, Arthur Zimek Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Programmierpraktikum Wintersemester 2007/08

Mehr

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

Mehr

Java Projekt: Tic Tac Toe + GUI

Java Projekt: Tic Tac Toe + GUI Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel

Mehr

Dokumentation des Projektes Tic Tac Toe

Dokumentation des Projektes Tic Tac Toe Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Swing Lernen am Code Teil 1

Swing Lernen am Code Teil 1 Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster

Mehr

Präsentation Von Laura Baake und Janina Schwemer

Präsentation Von Laura Baake und Janina Schwemer Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung

Mehr

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

Design Patterns 2. Model-View-Controller in der Praxis Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden

Mehr

LISP. Eine Einführung

LISP. Eine Einführung LISP Eine Einführung 5. OBERFLÄCHLICHES Übersicht 2 5.1 Verschiedenes zum letzten Aufgabenblatt 5.2 Geschwister und Komponenten oder wie finde ich was 5.3 on-click-methoden und on-change-methoden 5.1 Musterlösung

Mehr

http://www.tutego.com/ Schieberegler und analoge Anzeigen

http://www.tutego.com/ Schieberegler und analoge Anzeigen http://www.tutego.com/ Schieberegler und analoge Anzeigen http://www.tutego.com/ JScrollBar Schieberegler Unter Swing ersetzt javax.swing.jscrollbardie Klasse java.awt.scrollbar. Direkt wird die Klasse

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

Powermanager Server- Client- Installation

Powermanager Server- Client- Installation Client A Server Client B Die Server- Client- Funktion ermöglicht es ein zentrales Powermanager Projekt von verschiedenen Client Rechnern aus zu bedienen. 1.0 Benötigte Voraussetzungen 1.1 Sowohl am Server

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Kapitel 4. Monitore und wechselseitiger Ausschluss

Kapitel 4. Monitore und wechselseitiger Ausschluss Seite 1 Kapitel 4 Monitore und wechselseitiger Ausschluss Prof. Dr. Rolf Hennicker 28.05.2015 4.1 Interferenzen Seite 2 Parallel ablaufende Prozesse können sich gegenseitig (störend) beeinflussen. Beispiel

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

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

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Reporting Services und SharePoint 2010 Teil 1

Reporting Services und SharePoint 2010 Teil 1 Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Anleitung zur Installation von SFirm 3.1 inklusive Datenübernahme

Anleitung zur Installation von SFirm 3.1 inklusive Datenübernahme Anleitung zur Installation von SFirm 3.1 inklusive Datenübernahme Stand: 01.06.2015 SFirm 3.1 wird als separates Programm in eigene Ordner installiert. Ihre Daten können Sie nach der Installation bequem

Mehr

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C IAC-Programmierung HELP.BCFESITSIACPROG Release 4.6C IAC-Programmierung SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Übung 8: Semaphore in Java (eigene Implementierung)

Übung 8: Semaphore in Java (eigene Implementierung) Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

Java Lab 2006/12/13 Client

Java Lab 2006/12/13 Client Java Lab 2006/12/13 Client Prof. Dr. Bernhard Humm Version: 1.0 Date: 2006/12/06 Darmstadt University of Applied Sciences Department of Computer Science Schöfferstr. 8b 64295 Darmstadt Germany 1 Einleitung

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel ralf_gitzel@hotmail.de

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel ralf_gitzel@hotmail.de JSP Grundlagen JEE Vorlesung Teil 5 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht JSP Konzept Model-View-Controller mit JSPs JSP Expression Language EL Literale

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Exkurs GUI-Programmierung mit Java-SWING Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Für Hinweise und konstruktive Kritik

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 07: Nebenläufigkeit Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in die Nebenläufigkeit und Java Thread Konzept: Motivation

Mehr

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente Dr. Beatrice Amrhein Überblick Die Architektur WPF Projekt erstellen Steuerelemente einfügen Eigenschaften von Steuerelementen ändern Nach

Mehr