Grafikprogrammierung in Java: Grundlagen

Größe: px
Ab Seite anzeigen:

Download "Grafikprogrammierung in Java: Grundlagen"

Transkript

1 Grafikprogrammierung in Java: Grundlagen 11.1 Grundlagen 11.2 Grafische Grundelemente 11.3 Fensterklassen 11.4 Ereignisse und Widgets 11.5 Applets 11.6 Die Swing-Klassen 11.1 Grundlagen 11-1

2 Schnittstellen für Anwenderprogramme Eine Schnittstelle für Anwenderprogramme (application programming interface, API) stellt wohldefinierte und standardisierte Klassen und Methoden zur Verfügung, die von Anwenderprogrammen genutzt werden können. APIs ermöglichen es, vorhandene Software um weitere Funktionen zu ergänzen. Java stellt beispielsweise APIs für die folgenden Zwecke zur Verfügung: Grafikprogrammierung (mit AWT, Swing) Datenbankzugriffe (mit JDBC) Netzwerkprogrammierung Verarbeitung, Auswertung und Transformation von XML-Dokumenten Verschlüsselung von Daten (Sicherheit, Kryptografie, SecurityManager) Sound Grundlagen 11-2

3 Grafikprogrammierung Java bietet den Programmierern zwei Bibliotheken zur Programmierung von grafischen Benutzeroberflächen (graphical user interface, GUI) an: Abstract Window Toolkit (AWT) Das AWT ermöglicht die Ausführung grundlegender grafischer Operationen. Die Klassen und Methoden des AWTs sind im Standardpaket java.awt enthalten. Swing Seit der Version 1.1 gibt es eine zweite Grafikbibliothek im Java Development Kit. Sie heißt Swing und ist Bestandteil des Erweiterungspakets javax.swing. Diese Bibliothek beseitigt etliche Schwächen des AWTs und bietet eine weitgehend plattformunabhängige Schnittstelle. Die Möglichkeiten, die Swing bietet, übersteigen die des AWTs Grundlagen 11-3

4 Grafikprogrammierung Neben AWT und Swing gibt es eine verbreitete Bibliothek zur Programmierung grafischer Benutzeroberflächen: Standard Widget Toolkit (SWT) SWT ist eine Bibliothek für die Erstellung grafischer Oberflächen mit Java. Sie wurde im Jahr 2001 von IBM für die Entwicklungsumgebung Eclipse entwickelt und kommt in einer ganzen Reihe von Anwendungen zum Einsatz, beispielsweise Eclipse selbst. SWT leidet auf einigen Nicht-Windows-Plattformen unter Effizienzproblemen. SWT gehört nicht zum JDK. Wir gehen hier (aus Zeitgründen) nicht auf SWT ein. Es gibt weitere Bibliotheken Grundlagen 11-4

5 Das Abstract Window Toolkit Die Fähigkeiten des AWTs lassen sich in vier Gruppen einteilen: Grundoperationen zum Zeichnen von Linien und Flächen und zur Ausgabe von Text Methoden zur Programmsteuerung durch die Behandlung von Maus-, Tastaturund Fensterereignissen Dialogelemente zur Kommunikation mit dem Anwender Fortgeschrittene Operationen zur Ausgabe von Bitmaps und Tönen 11.1 Grundlagen 11-5

6 Ein einführendes Beispiel import java.awt.*; public class Fenster extends Frame { } Fenster() { setbackground(color.yellow); setsize(200,150); setlocation(500,500); setvisible(true); } public static void main(string[] args) { new Fenster(); } 11.1 Grundlagen 11-6

7 Das Abstract Window Toolkit Zum Ableiten einer eigenen Fensterklasse wird in der Regel entweder die Klasse Frame oder die Klasse Dialog verwendet. Um ein neues Fenster zu erhalten, muss ein Objekt der Klasse Frame erzeugt, auf die gewünschte Größe gebracht und durch Aufruf der Methode setvisible sichtbar gemacht werden. Die Ausgabe in ein Fenster erfolgt durch Überlagern der Methode paint. Diese Methode wird immer dann aufgerufen, wenn das Fenster neu gezeichnet werden muss, z. B. beim Programmstart oder beim Verändern der Größe. Die Methode void paint(graphics g) erhält als Parameter einen grafischen Kontext. Hierunter versteht man allgemeine Einstellungen für Schrift und Grafik, beispielsweise den aktuellen Font und die aktuelle Farbe Grundlagen 11-7

8 import java.awt.*; class Rechteck extends Canvas { Ein einführendes Beispiel public void paint(graphics g) { g.setcolor(color.red); g.fillrect(20,20,100,40); g.setcolor(color.black); g.drawstring("ein rotes Rechteck",20,80); setlocation(20,15); } } // Vokabeltest: canvas = Leinwand 11.1 Grundlagen 11-8

9 class EinfachesFenster extends Frame { EinfachesFenster() { add(new Rechteck()); setbackground(color.yellow); setsize(200,150); setvisible(true); setlocation(200,200); } } public static void main(string[] args) { new EinfachesFenster(); } 11.1 Grundlagen 11-9

10 Ereignisgesteuerte Programmierung Die Programme, die wir bisher betrachtet haben, arbeiten nach dem Prinzip der Ein-Ausgabe-Programmierung. Dieses Modell wird jetzt zur ereignisgesteuerten Programmierung erweitert. Ereignisse sind beispielsweise das Drücken einer Taste, die Betätigung des Rollbalkens oder die Bewegung der Maus. Es gibt viele Varianten der ereignisgesteuerten Programmierung. In Java wird das sogenannte Delegation Based Event Handling verwendet. Es bietet die Möglichkeit, GUI-Ereignisse an beliebige Objekte weiterzuleiten und dort zu behandeln. Auf diese Weise können die Oberfläche und die eigentliche Anwendung klar voneinander getrennt werden Grundlagen 11-10

11 Ereignisgesteuerte Programmierung Jedes Ereignis besitzt eine Quelle (Source). Ein Ereignis kann von Beobachtern (Listener) wahrgenommen werden. Die Anmeldung von Beobachtern zur Benachrichtigung vom Eintreten eines Ereignisses ist frei programmierbar und muss immer explizit erfolgen. Es ist nicht festgelegt, in welcher Reihenfolge die Beobachter vom Eintreten eines Ereignisses informiert werden. Sichergestellt ist lediglich, dass jeder Beobachter eine Kopie des ursprünglichen Ereignisses erhält. Bei der Verbreitung von Ereignissen ist zwischen den Modi single-cast und multi-cast zu unterscheiden. Für Single-Cast-Ereignisse wird der Beobachter mit einer setxxlistener-methode gesetzt, für Multi-Cast-Ereignisse wird ein Beobachter mit einer addxxlistener-methode der Menge der Beobachter hinzugefügt Grundlagen 11-11

12 Beispiel: Schließen eines Fensters Um ein Fenster zu schließen, muss ein WindowListener registriert werden. Hierbei handelt es sich um einen Beobachter, dessen Methode windowclosing aufgerufen wird, wenn der Anwender das Fenster über ein System-Menü oder einen Button schließen möchte. Das Fenster wird durch setvisible(false) unsichtbar gemacht, seine Ressourcen durch dispose() wieder freigegeben Grundlagen 11-12

13 Beispiel: Schließen eines Fensters import java.awt.*; import java.awt.event.*; public class WindowClosingAdapter extends WindowAdapter { public void windowclosing(windowevent event) { event.getwindow().setvisible(false); event.getwindow().dispose(); System.out.println("Das Fenster wurde geschlossen!"); } } Frame wnd = new Frame(); wnd.addwindowlistener(new WindowClosingAdapter()); wnd.setsize(400,300); wnd.setvisible(true); 11.1 Grundlagen 11-13

14 Adapter-Klassen Eine Adapter-Klasse ist eine Klasse, die eine gegebene Schnittstelle implementiert, indem sie jede abstrakte Methode durch einen leeren Rumpf realisiert. Adapter-Klassen werden verwendet, wenn von einer Schnittstelle lediglich ein Teil der Methoden benötigt wird, der Rest aber uninteressant ist. In diesem Fall leitet man eine neue Klasse aus der Adapter-Klasse ab und überlagert nur die erforderlichen Methoden. Beispiel: Die Klasse WindowAdapter implementiert die Schnittstellen WindowListener, WindowStateListener und WindowFocusListener durch leere Rümpfe. Hierbei handelt es sich um die folgenden Methoden: 11.1 Grundlagen 11-14

15 Die Klasse WindowAdapter void windowactivated(windowevent e) void windowclosed(windowevent e) void windowclosing(windowevent e) void windowdeactivated(windowevent e) void windowdeiconified(windowevent e) void windowgainedfocus(windowevent e) void windowiconified(windowevent e) void windowlostfocus(windowevent e) void windowopened(windowevent e) void windowstatechanged(windowevent e) 11.1 Grundlagen 11-15

16 Ein einführendes Beispiel Wir fassen zusammen: import java.awt.*; import java.awt.event.*; class WindowClosingAdapter extends WindowAdapter { public void windowclosing(windowevent event) { event.getwindow().setvisible(false); event.getwindow().dispose(); System.out.println("Das Fenster wurde geschlossen!"); } } 11.1 Grundlagen 11-16

17 class Rechteck extends Canvas { } public void paint(graphics g) { g.setcolor(color.red); g.fillrect(20,20,100,40); g.setcolor(color.black); g.drawstring("ein rotes Rechteck",20,80); setlocation(20,15); } 11.1 Grundlagen 11-17

18 public class EinfachesFenster extends Frame { } EinfachesFenster(String title) { super(title); addwindowlistener(new WindowClosingAdapter()); setbackground(color.yellow); setsize(400,200); add(new Rechteck()); setvisible(true); } 11.1 Grundlagen 11-18

19 EinfachesFenster e1 = new EinfachesFenster("Erstes Fenster"), e2 = new EinfachesFenster("Zweites Fenster"), e3 = new EinfachesFenster("Drittes Fenster"); e1.setlocation(200,200); e2.setlocation(400,300); e3.setlocation(600,400); 11.1 Grundlagen 11-19

20 Grafikprogrammierung in Java: Grafische Grundelemente 11.1 Grundlagen 11.2 Grafische Grundelemente 11.3 Fensterklassen 11.4 Ereignisse und Widgets 11.5 Applets 11.6 Die Swing-Klassen 11.2 Grafische Grundelemente 11-20

21 Das grafische Koordinatensystem Die Ausgabe von grafischen Objekten basiert auf einem zweidimensionalen Koordinatensystem, dessen Ursprung (0,0) in der linken oberen Ecke liegt. x y Positive x-werte erstrecken sich nach rechts, positive y-werte nach unten. Die Maßeinheit entspricht einem Bildschirmpixel und ist somit geräteabhängig Grafische Grundelemente 11-21

22 Der Benutzerbereich Es steht nicht das gesamte Fenster für Ausgaben zur Verfügung. Oben, unten, links und rechts wird Platz zur Ausgabe von Rahmen und Titelzeile benötigt. Mit getsize().width und getsize().height kann die Gesamtbreite bzw. -höhe eines Fensters ermittelt werden. Durch getinsets().left, getinsets().right, getinsets().top und getinsets().bottom lässt sich die Abmessung des Rahmens und durch Differenzbildung die des Benutzerbereichs (client area) bestimmen Grafische Grundelemente 11-22

23 Elementare Grafikroutinen (Auswahl) void drawstring(string s, int x, int y) drawstring schreibt den String s an die Position (x,y). Diese Koordinaten stellen das linke Ende der Basislinie von s dar. void drawchars(char[] c, int offset, int length, int x, int y) Diese Methode schreibt ein Zeichenfeld. Die Parameter offset und length können zur Angabe des ersten Zeichens und der Anzahl der auszugebenden Zeichen verwendet werden Grafische Grundelemente 11-23

24 Beispiel: Die Anweisungen Elementare Grafikroutinen (Auswahl) char[] c = { a, b, c, d, e, f }; g.drawstring("zeichenkette",50,50); g.drawchars(c,1,4,50,150); schreiben den String "Zeichenkette" an die Position (50,50) und darunter die Zeichen "bcde" an die Position (50,150) Grafische Grundelemente 11-24

25 Elementare Grafikroutinen (Auswahl) void drawline(int x1, int y1, int x2, int y2) Diese Methode zieht eine Linie von der Position (x1,y1) zur Position (x2,y2). void drawrect(int x, int y, int width, int height) drawrect zeichnet ein Rechteck der Breite width und der Höhe height, dessen linke obere Ecke an der Position (x,y) liegt. void drawroundrect(int x, int y, int width, int height, int arcwidth, int archeight) Es wird ein Rechteck mit abgerundeten Ecken gezeichnet. arcwidth und archeight bestimmen die Halbachsen der Ellipse, die zur Darstellung der Ecken verwendet wird Grafische Grundelemente 11-25

26 Elementare Grafikroutinen (Auswahl) void drawpolygon(int[] x, int[] y, int anzahl) Diese Methode zeichnet einen Linienzug. Die x-koordinaten der Punkte werden dem ersten Parameter, die y-koordinaten dem zweiten Parameter entnommen. Die Anzahl der Koordinatenpaare wird durch den dritten Parameter festgelegt. Der Polygonzug wird geschlossen. Durch drawpolyline kann ein nichtgeschlossener Linienzug dargestellt werden. Eine andere Möglichkeit, ein Polygon zu erzeugen, besteht darin, einen Konstruktor der Klasse Polygon aufzurufen: Polygon(int[] x, int[] y, int anzahl) Polygon() Durch addpoint kann ein Polygon erweitert werden Grafische Grundelemente 11-26

27 Elementare Grafikroutinen (Auswahl) void drawoval(int x, int y, int width, int height) Mit dieser Methode können Kreise und Ellipsen gezeichnet werden. Die Parameter spezifizieren ein Rechteck wie in der Methode drawrect. Es wird die größte Ellipse gezeichnet, die in dieses Rechteck hineinpasst. void drawarc(int x, int y, int width, int height, int startangle, int arcangle) Mit drawarc kann ein Kreisbogen dargestellt werden. Die ersten vier Parameter geben den Kreis, startangle den Anfangswinkel und arcangle den Winkel an Grafische Grundelemente 11-27

28 Elementare Grafikroutinen (Auswahl) Die folgenden Funktionen stellen die gleichen geometrischen Objekte dar wie die obigen, zeichnen aber nicht nur deren Umrisse, sondern füllen auch ihre Fläche aus. void fillrect(... ) void fillroundrect(... ) void fillpolygon(... ) void filloval(... ) void fillarc(... ) 11.2 Grafische Grundelemente 11-28

29 Elementare Grafikroutinen (Auswahl) void clearrect(int x, int y, int width, int height) Die Methode clearrect überschreibt das angegebene Rechteck mit der aktuellen Hintergrundfarbe. void copyarea(int x, int y, int width, int height, int dx, int dy) copyarea kopiert das ausgewählte Rechteck an die Position (x + dx, y + dy). Mit einer Clipping-Region kann die Ausgabe auf einen bestimmten Bereich eingeschränkt werden Grafische Grundelemente 11-29

30 Schriftarten Ohne zusätzliche Anweisungen wird Text in einem systemabhängigen Standard-Font ausgegeben. Um einen anderen Font zur Textausgabe zu verwenden, muss zuerst ein Font-Objekt erzeugt und dann in den Grafik-Kontext eingetragen werden. Ein Font-Objekt kann mit einem Konstruktor der Klasse Font erzeugt werden: Font(String name, int style, int size) Mit void setfont(font font) und Font getfont() kann der Font gesetzt bzw. abgefragt werden Grafische Grundelemente 11-30

31 Schriftarten Der Parameter name gibt den Namen der gewünschten Schrift an. Font-Namen sind beispielsweise Times New Roman, Helvetica oder Courier. Schriften können Serifen besitzen oder auch serifenlos sein. Ein weiteres Kennzeichen einer Schrift ist die Zeichenbreite. Diese kann variabel oder konstant sein. Bei konstanter Zeichenbreite bezeichnet man eine Schrift als monospaced. Beispiel: Der Font, in dem diese Folien geschrieben wurden, ist die serifenlose Variante der Latin Computer Modern. Es können auch die Font-Namen Serif, SansSerif und Monospaced verwendet werden. Sie werden auf entsprechende Fonts abgebildet Grafische Grundelemente 11-31

32 Schriftarten Der Parameter size gibt die Schriftgröße an. Übliche Schriftgrößen für Text liegen zwischen 10 pt und 12 pt. Die Schriftart wird durch den Parameter style beschrieben: Name Wert Bedeutung Font.PLAIN 0 Standard-Font Font.BOLD 1 Fettdruck Font.ITALIC 2 Kursivdruck 3 fetter Kursivdruck 11.2 Grafische Grundelemente 11-32

33 Schriftarten Beispiel: Die folgenden Anweisungen bewirken, dass der String "Zeichenkette" in einer Schrift mit konstanter Zeichenbreite in fettem Kursivdruck in 12-Punkt-Schrift an die Position (50,350) geschrieben wird: Font f = new Font("Monospaced",3,12); g.setfont(f); g.drawstring("zeichenkette",50,350); 11.2 Grafische Grundelemente 11-33

34 Schriftarten Das folgende Beispiel gibt die drei Standardschriften in 36 Punkt aus: public void paint(graphics g) { } Font font; String[] arfonts = {"Serif","SansSerif","Monospaced"}; for (int i = 0; i < arfonts.length; ++i) { font = new Font(arfonts[i],Font.PLAIN,36); g.setfont(font); g.drawstring(arfonts[i],10,30 + (i + 1) * (36 + 5)); } 11.2 Grafische Grundelemente 11-34

35 Schriftarten Die Klasse Font besitzt Methoden, um Informationen über den aktuellen Font zu gewinnen: String getfamily() int getstyle() int getsize() Die Klasse FontMetrics stellt Methoden zur Verfügung, mit denen die Größenmaßzahlen einzelner Zeichen wie Oberlänge, Unterlänge oder Breite, Größen wie der Zeilenabstand oder die Länge eines Strings ermittelt werden können. int charwidth(char ch) int stringwidth(string str) 11.2 Grafische Grundelemente 11-35

36 Farbmodell Eine Möglichkeit, in Java Farben zu benutzen, basiert auf dem RGB-Farbmodell (Rot-Grün-Blau-Farbmodell). Jede dieser drei Grundfarben wird durch 8 Bits dargestellt. Der Anteil einer Grundfarbe kann also durch eine Dezimalzahl zwischen 0 und 255 beschrieben werden. Für die gesamte Farbtiefe ergeben sich somit 24 Bits. Farbe Rot Grün Blau Weiß Grau Schwarz Rot Grün Blau Gelb Magenta Cyan Java unterstützt weitere Farbmodelle, in denen Farben z. B. durch Farbton, Intensität und Helligkeit dargestellt werden Grafische Grundelemente 11-36

37 Erzeugung von Farben Farben werden durch die Klasse Color dargestellt. Jedes Objekt repräsentiert eine Farbe, die durch ihren RGB-Wert eindeutig gekennzeichnet ist. Konstruktoren: Color(int r, int g, int b) Color(float r, float g, float b) Der erste Konstruktor erwartet ganzzahlige Werte im Bereich von 0 bis 255, der zweite Fließkommazahlen zwischen 0.0 und 1.0. Der Wert 0.0 entspricht der ganzzahligen 0, der Wert 1.0 der ganzzahligen Grafische Grundelemente 11-37

38 Erzeugung von Farben Die Klasse Color stellt etliche Farben als statische Objekte zur Verfügung: static Color black static Color red static Color green static Color blue... Von einem bestehenden Farbobjekt kann der RGB-Wert mit den Methoden int getred(), int getgreen() und int getblue() ermittelt werden Grafische Grundelemente 11-38

39 Verwendung von Farben Um Farben bei der Ausgabe von Schrift oder Grafik zu verwenden, muss ein Objekt der Klasse Color erzeugt und mithilfe der Methode void setcolor(color c) dem grafischen Kontext zugewiesen werden. Die Ausgabe erfolgt solange in der neuen Farbe, bis dem Kontext eine neue Farbe zugeordnet wird. Mit Color getcolor() wird die aktuelle Farbe abgefragt Grafische Grundelemente 11-39

40 Verwendung von Farben Beispiel: public void paint(graphics g) { g.setcolor(color.red); g.drawstring("zeichenkette",200,500); g.setcolor(new Color(200,200,0)); g.drawoval(50,400,60,160);... } 11.2 Grafische Grundelemente 11-40

41 Die Klasse SystemColor Die Klasse SystemColor stellt eine Reihe von Farben zur Verfügung, die den Farben des Desktops entsprechen. Damit können Anwendungen entwickelt werden, die im Aussehen an die Betriebssystemumgebung angepasst sind. Beispiele: SystemColor.desktop Hintergrundfarbe des Desktops SystemColor.window Hintergrundfarbe für Fenster SystemColor.text Hintergrundfarbe für Text 11.2 Grafische Grundelemente 11-41

42 Grafikprogrammierung in Java: Fensterklassen 11.1 Grundlagen 11.2 Grafische Grundelemente 11.3 Fensterklassen 11.4 Ereignisse und Widgets 11.5 Applets 11.6 Die Swing-Klassen 11.3 Fensterklassen 11-42

43 Fensterklassen Das AWT enthält eine Reihe von Fensterklassen, die über eine Vererbungslinie miteinander verbunden sind. An der Spitze steht die Klasse Component: Component Container Panel - Applet Window - Frame - Dialog FileDialog Button Canvas Checkbox Choice Label List Scrollbar Textcomponent 11.3 Fensterklassen 11-43

44 Fensterklassen Component ist eine abstrakte Klasse, deren Objekte Programmelemente darstellen, die eine Größe und eine Position besitzen und die Ereignisse senden und auf Ereignisse reagieren können. Container ist eine konkrete Klasse. Sie erlaubt es, innerhalb einer Komponente weitere Komponenten aufzunehmen. Container stellt Methoden, um Komponenten hinzuzufügen oder zu entfernen, bereit. Mit den LayoutManager-Klassen werden die Komponenten positioniert. LayoutManager, LayoutManager2 sind Interfaces. Implementierende Klassen sind beispielsweise BorderLayout, FlowLayout, GridLayout, Fensterklassen 11-44

45 Fensterklassen Panel ist die einfachste konkrete Klasse mit den Eigenschaften von Component und Container. Applet ist eine direkte Unterklasse von Panel. Ein Applet besitzt also die Fähigkeiten der Klassen Component und Container. Diese Klasse spielt eine entscheidende Rolle in der Entwicklung von Applets. Die Klasse Window abstrahiert ein Top-Level-Window ohne Rahmen, Titelleiste und Menü. Sie ist für Anwendungen geeignet, die die Kontrolle über das gesamte Fenster benötigen. Frame repräsentiert ein Top-Level-Window mit Rahmen, Titelleiste und optionalem Menü. Einem Frame kann ein Icon zugeordnet werden, das angezeigt wird, wenn ein Fenster minimiert wird Fensterklassen 11-45

46 Aufrufen und Schließen eines Fensters Um ein Fenster auf dem Bildschirm anzuzeigen, muss zunächst eine geeignete Fensterklasse instanziiert werden. Dafür kommen Klassen wie Window, Frame, Dialog, Applet und FileDialog in Frage. Die Klassen haben unterschiedliche Konstruktoren. Nach der Instanziierung wird die Methode setvisible(boolean visible) aufgerufen, um das Fenster anzuzeigen. Wird true übergeben, wird das Fenster angezeigt, andernfalls geschlossen. Um ein Fenster zu schließen, sind die Methoden setvisible(false) und dispose() aufzurufen Fensterklassen 11-46

47 Eigenschaften eines Fensters Größe und Position, geerbt von Component Aktivierungskomponente, geerbt von Component Fensterelemente Titelleiste, Menü, Icon, Mauscursor, Standardfont, Vorder- und Hintergrundfarbe Die Eigenschaften eines Fensters können mithilfe spezieller Methoden gesetzt und abgefragt werden. Beispiel: Objekte der Klasse Frame besitzen einen Rahmen, eine Titelleiste und optional ein Menü, Objekte der Klasse Window hingegen nicht Fensterklassen 11-47

48 Grafikprogrammierung in Java: Ereignisse und Widgets 11.1 Grundlagen 11.2 Grafische Grundelemente 11.3 Fensterklassen 11.4 Ereignisse und Widgets 11.5 Applets 11.6 Die Swing-Klassen 11.4 Ereignisse und Widgets 11-48

49 Ereignisgesteuerte Programmierung Ereignisse sind beispielsweise das Drücken einer Taste, die Betätigung des Rollbalkens oder die Bewegung der Maus. Jedes Ereignis besitzt eine Quelle (Source). Ein Ereignis kann von Beobachtern (Listener) wahrgenommen werden. Die Anmeldung von Beobachtern zur Benachrichtigung vom Eintreten eines Ereignisses ist frei programmierbar und muss immer explizit erfolgen. Es ist nicht festgelegt, in welcher Reihenfolge die Beobachter vom Eintreten eines Ereignisses informiert werden. Sichergestellt ist lediglich, dass jeder Beobachter eine Kopie des ursprünglichen Ereignisses erhält Ereignisse und Widgets 11-49

50 Ereignisgesteuerte Programmierung Bei der Verbreitung von Ereignissen ist zwischen den Modi single-cast und multi-cast zu unterscheiden. Für Single-Cast-Ereignisse wird der Beobachter mit einer setxxlistener-methode gesetzt, für Multi-Cast-Ereignisse wird ein Beobachter mit einer addxxlistener-methode der Menge der Beobachter hinzugefügt. Eine Adapter-Klasse ist eine Klasse, die eine gegebene Schnittstelle implementiert, indem sie jede abstrakte Methode durch einen leeren Rumpf realisiert. Adapter-Klassen werden verwendet, wenn von einer Schnittstelle lediglich ein Teil der Methoden benötigt wird, der Rest aber uninteressant ist. In diesem Fall leitet man eine neue Klasse aus der Adapter-Klasse ab und überlagert nur die erforderlichen Methoden Ereignisse und Widgets 11-50

51 Ereignisklassen EventObject AWTEvent ComponentEvent - FocusEvent - InputEvent - KeyEvent - MouseEvent - ContainerEvent - WindowEvent ActionEvent AdjustmentEvent ItemEvent TextEvent 11.4 Ereignisse und Widgets 11-51

52 EventListener-Schnittstellen EventListener FocusListener ActionListener AdjustmentListener ItemListener TextListener KeyListener MouseListener MouseMotionListener WindowListener ContainerListener ComponentListener 11.4 Ereignisse und Widgets 11-52

53 Low-Level-Events Beispiel: Window-Events windowopened windowactivated, windowdeactivated windowclosed windowclosing windowiconified, windowdeiconified 11.4 Ereignisse und Widgets 11-53

54 Widgets Fensterelemente mit Ein- und/oder Ausgabefunktionalität werden als Widgets (window gadgets) bezeichnet. Die Anordnung der Widgets in einem Fenster wird durch den Layout-Manager durchgeführt. Widgets sind beispielsweise: Label Rollbalken Schaltflächen (buttons) Checkboxen und Checkboxgruppen (radio buttons) 11.4 Ereignisse und Widgets 11-54

55 Widgets Textfelder und Textbereiche Auswahlboxen Listen Canvas Panels Dateidialogboxen (nicht für Applets) Menüs (nicht für Applets) 11.4 Ereignisse und Widgets 11-55

56 Schritte zur Realisierung eines Widgets Schnittstelle angeben Widget deklarieren und initialisieren Widget dem Layout hinzufügen Beobachter registrieren Ereignis behandeln Man beachte, dass mehrere Widgettypen dieselbe Ereignisklasse verwenden, z. B. benutzen Schaltflächen und Textfelder die Klasse ActionListener Ereignisse und Widgets 11-56

57 Beispiel: Rollbalken Als erstes Beispiel betrachten wir jetzt die Programmierung eines Rollbalkens. import java.awt.*; import java.awt.event.*; public class WindowBlind extends Frame implements AdjustmentListener { private Scrollbar schieber; private int schieberwert; 11.4 Ereignisse und Widgets 11-57

58 public WindowBlind() { setlayout(new FlowLayout()); setbackground(color.white); schieber = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); add(schieber); addwindowlistener(new WindowClosingAdapter()); schieber.addadjustmentlistener(this); } 11.4 Ereignisse und Widgets 11-58

59 public void paint(graphics g) { g.drawstring("rollbalkenwert ist " + schieberwert,120,200); g.setcolor(color.red); g.drawrect(40,80,60,100); g.fillrect(40,80,60,schieberwert); g.setcolor(color.blue); g.drawrect(120,80,60,100); g.fillrect(120,80 + schieberwert,60,100 - schieberwert); g.setcolor(color.green); g.drawrect(200,80,60,100); g.fillrect(200,80,60,100 - schieberwert); } 11.4 Ereignisse und Widgets 11-59

60 public void adjustmentvaluechanged(adjustmentevent e) { schieberwert = schieber.getvalue(); repaint(); } 11.4 Ereignisse und Widgets 11-60

61 public static void main(string[] args) { WindowBlind f = new WindowBlind(); f.setsize(400,300); f.setvisible(true); } } 11.4 Ereignisse und Widgets 11-61

62 Beispiel: Label und Button... implements ActionListener { private Label title; private Button knopf1, knopf2; private int anzahl = 0; public Konstruktor() { setlayout(new FlowLayout()); title = new Label("Zählknopf:"); knopf1 = new Button("Drück mich!"); knopf2 = new Button("Ende"); add(title); add(knopf1); add(knopf2); knopf1.addactionlistener(this); knopf2.addactionlistener(this); } 11.4 Ereignisse und Widgets 11-62

63 public void paint(graphics g) { g.drawstring("der Knopf wurde " + anzahl + " mal gedrückt.",10,80); } public void actionperformed(actionevent event) { anzahl++; if (event.getsource() == knopf2) System.exit(0); repaint(); } } 11.4 Ereignisse und Widgets 11-63

64 AbstractButton Die abstrakte Klasse AbstractButton ist eine Unterklasse der Klasse JComponent (s. Abschnitt Swing-Klassen). Die abstrakte Klasse AbstractButton enthält die Methode void doclick() durch die in Implementierungen dieser Klasse ein Klick programmatisch ausgeführt werden kann. Beispiele für Unterklassen von AbstractButton sind die Klassen JButton, JToggleButton und JMenuItem Ereignisse und Widgets 11-64

65 Weitere Widgets Textfield: ActionListener, addactionlistener void actionperformed(actionevent event) Checkbox, Checkboxgroup: ItemListener, additemlistener void itemstatechanged(itemevent event) Choice: ItemListener, additem, additemlistener void itemstatechanged(itemevent event) 11.4 Ereignisse und Widgets 11-65

66 Grafikprogrammierung in Java: Applets 11.1 Grundlagen 11.2 Grafische Grundelemente 11.3 Fensterklassen 11.4 Ereignisse und Widgets 11.5 Applets 11.6 Die Swing-Klassen 11.5 Applets 11-66

67 Anwendungen (Applikationen) Anwendungen und Applets Anwendungen bilden eigenständige Programme. Zur Ausführung benötigen sie nur den Java-Interpreter und die.class-dateien der beteiligten Klassen. Jede Klasse, die die Methode public static void main enthält, kann als Anwendung benutzt werden. Applets (little applications) Applets sind kleine Programme, die in eine Html-Seite eingebettet sind und nur innerhalb eines Web-Browsers oder eines Applet-Viewers ausgeführt werden können. Applets werden nicht durch die Methode main gestartet, sondern müssen aus der Klasse Applet abgeleitet und entsprechend konstruiert werden Applets 11-67

68 import java.awt.*; import java.applet.*; Ein kleines Applet: Java-Datei public class MinimalApplet extends Applet { } public void paint(graphics g) { g.drawstring("test-ausgabe",0,20); } 11.5 Applets 11-68

69 Ein kleines Applet: Html-Seite <html> <head> <title>applet-test</title> </head> <body> <applet code="minimalapplet" width=600 height=800> Hier steht das Applet.</applet> </body> </html> 11.5 Applets 11-69

70 Anwendungen und Applets Ein Applet wird immer aus der Klasse Applet abgeleitet. Bei einer Anwendung ist es dagegen gleichgültig, woraus die Hauptklasse abgeleitet wird. Eine Anwendung wird gestartet, indem vom Java-Interpreter die Methode main aufgerufen wird. Das Starten eines Applets wird dadurch erreicht, dass der Browser oder der Applet-Viewer die Applet-Klasse instanziiert und die Methoden init und start aufruft. Aus Gründen der Sicherheit darf ein Applet in der Regel weder auf Dateien des lokalen Rechners zugreifen noch externe Programme auf dem Rechner starten Applets 11-70

71 Anwendungen und Applets Ein Applet arbeitet immer ereignisorientiert. Im Gegensatz dazu kann eine Anwendung auf die Behandlung von Ereignissen verzichten und alle Ein- und Ausgaben textbasiert durchführen. Im Vergleich zu Anwendungen bieten Applets einige zusätzliche Möglichkeiten Applets 11-71

72 Die Klasse Applet Die Klasse Applet steht in der Vererbungshierarchie unter der Klasse Component und Container. Sie besitzt damit deren Eigenschaften. Component Container Panel - Applet Bezüglich der Reaktion auf Ereignisse und die Registrierung und Programmierung von Listener-Klassen verhält sich ein Applet wie jedes andere Fenster Applets 11-72

73 init(): Initialisierung eines Applets start(): Start eines Applets stop(): Stopp eines Applets, z. B. beim Laden einer anderen Seite. Methoden start und stop können mehrfach während der Lebensdauer eines Applets aufgerufen werden. paint(graphics g): Methode zum Zeichnen destroy(): Beenden eines Applets 11.5 Applets 11-73

74 Beispiel: Rollbalken Als Beispiel schreiben wir das Rollbalkenprogramm als Applet. import java.awt.*; import java.awt.event.*; import java.applet.applet; public class WindowBlind extends Applet implements AdjustmentListener { private Scrollbar schieber; private int schieberwert; 11.5 Applets 11-74

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

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 Swing. Graphical User Interface

Einführung in Swing. Graphical User Interface Einführung in Swing Ho Ngoc Duc IFIS - Universität zu Lübeck Graphical User Interface Ein GUI-Programm beinhaltet: Graphische Darstellung der Anwendungsdaten und Interaktionsmöglichkeiten in Fenstern Steuerung

Mehr

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

Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing Heinrich Hußmann Ludwig-Maximilians-Universität München Sommersemester 2003 Ludwig-Maximilians-Universität München Prof. Hußmann

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

GUI-Programmierung mit Java-Swing

GUI-Programmierung mit Java-Swing GUI-Programmierung mit Java-Swing Michael Dienert 18. Oktober 2010 Inhaltsverzeichnis 1 Was ist Swing? 2 1.0.1 Ein sehr gutes Beispiel..................... 3 1.0.2 Eine sehr schnelle Alternative zu Swing............

Mehr

Java Applikationen, Swing/JFC

Java Applikationen, Swing/JFC Java Applikationen, Swing/JFC Applets und Applikationen Kommandozeilen Anwendung Anwendungen mit GUI Swing/JFC Menus Weitere Komponenten Layouts Look & Feel Applets und Applikationen 2 von 70 Einführung

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung Einleitung Architektur Swing Beispiele Aufgabe Techniken der Projektentwicklung Swing Concepts Ingo Lütkebohle Termin 11 Ingo Lütkebohle Techniken der Projektentwicklung 1 Einleitung Architektur Swing

Mehr

Softwarepraktikum: Enigma

Softwarepraktikum: Enigma Softwarepraktikum: Enigma Martin Steffen Sommersemester 2003 Abschnitt I GUI Inhalt: Übersicht gui-pakete in Java: AWT, Swing Komponenten und Behälter Layout Ereignisse und Ereignisbehandlung Ereignismodell

Mehr

Klausur vom 14. Juni 2004. Informatik 4

Klausur vom 14. Juni 2004. Informatik 4 Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik, Burgdorf Klasse: EV02-1 Name, Vorname: Klausur vom 14. Juni

Mehr

Ein Manager mit CardLayout layout/cards.java

Ein Manager mit CardLayout layout/cards.java 201 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Ein Manager mit CardLayout layout/cards.java CardLayout dient vor allem zum Aufbau von Inspektoren: In der gleichen Fläche soll je nach

Mehr

Kurs: Programmieren in Java

Kurs: Programmieren in Java Kurs: Programmieren in Java Tag 5 G R U N D L A G E N K I U N D S P I E L E - P R O G R A M M I E R U N G G R A F I K K O N Z E P T E B I L D V E R A R B E I T U N G M U S T E R E R K E N N U N G O B J

Mehr

In Track B generell gute Java-Kenntnisse vorausgesetzt!

In Track B generell gute Java-Kenntnisse vorausgesetzt! Gliederung Track A (Technik, montags): A1. Eingabe- und Ausgabetechnik bei Rechnersystemen A2. Technik der digitalen Bildverarbeitung A3. Technik der digitalen Tonverarbeitung A4. Technik der digitalen

Mehr

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

Java Design und Event Handling. Natascha Hoebel Professur Prof. R. V. Zicari. AWT SWING Layout Design Event Handling Java Design und Event Handling Natascha Hoebel Professur Prof. R. V. Zicari AWT SWING Layout Design Event Handling Benutzerschnittstellen User Interfaces (UI) UI: GUI, WEB-Schnittstellen GUI: interaktive

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

GUI-Programmierung - Einführung

GUI-Programmierung - Einführung GUI-Programmierung - Einführung 1 Kernkonzepte Komponenten (components) Layout ereignisgesteuerte Programmierung (event driven programming) Frames and Components 2 windows (frames) menus labels checkboxes

Mehr

6. Eventhandling in Java

6. Eventhandling in Java 6. Eventhandling in Java OO-Graphics in Java Eventhandling in Java 143 Eventhandling in Java Bisher: OO-Grundlagen, Programmablauf, Zeichenmöglichkeiten, Anordnung von Bedienelementen. Was fehlt? Interaktivität!!!

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

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

Ab jetzt: Java ohne Kara

Ab jetzt: Java ohne Kara Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen JavaKara -> Java Ablauf in JavaKara: 1. Programm schreiben 2. Kompilieren 3. Programm starten Ablauf in Java

Mehr

Entwicklung von E-Learning Komponenten zur Computergrafik

Entwicklung von E-Learning Komponenten zur Computergrafik F Entwicklung von E-Learning Komponenten zur Computergrafik Development of E-learning components for computer graphics Markus Stollenwerk, Rainer Friesen und Daniel Valentin Master Projektstudium Betreuer:

Mehr

Test von Oberflächen. 6. Test von Software mit Nutzungsoberflächen. Erinnerung: GUI-Aufbau mit Swing. Achtung: Swing und Threads

Test von Oberflächen. 6. Test von Software mit Nutzungsoberflächen. Erinnerung: GUI-Aufbau mit Swing. Achtung: Swing und Threads 6. Test von Software mit Nutzungsoberflächen Ansätze zum Oberflächentest Erinnerung: GUI-Aufbau mit Swing Einführung in FEST Systematische Nutzung von FEST Teststrategien Capture& Replay Vorstellung von

Mehr

Fortgeschrittene Objektorientierung

Fortgeschrittene Objektorientierung Fortgeschrittene Objektorientierung GUI-Programmieren in Java Gregor Snelting Andreas Lochbihler Universität Karlsruhe Lehrstuhl Programmierparadigmen 27. Mai 2008 Gregor Snelting (Universität Karlsruhe)

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

Kapitel 6. Vererbung

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

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Kapitel 6. Vererbung

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

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Grafische Benutzeroberfläche mit Java-Applets

Grafische Benutzeroberfläche mit Java-Applets Grafische Benutzeroberfläche mit Java-Applets Joachim u. Marion Lammarsch, Rothenberg Mai 2002 Diese Unterlagen dienen lediglich der Arbeitserleichterung der Kurs-Teilnehmer. Sie sind kein Handbuch oder

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Einführung in die GUI Programmierung mit Java

Einführung in die GUI Programmierung mit Java GUI-Programmierung Einführung in die GUI Programmierung mit Java Christian Knauer GUI = Graphical User Interface = Grafische Benutzeroberfläche Graphische Darstellung der Anwendungsdaten und Interaktionsmöglichkeiten

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

UNIVERSITÄT DORTMUND GUI-Programmierung mit JavaBeans

UNIVERSITÄT DORTMUND GUI-Programmierung mit JavaBeans GUI-Programmierung mit JavaBeans Dipl.-Inform. Christof Veltmann Lehrstuhl für Software-Technologie Universität Dortmund GUI-Programmierung mit JavaBeans Oberflächenprogrammierung mit Java GUI-Elemente

Mehr

Einführung in die objektorientierte Programmierung mit Java - SS 2014

Einführung in die objektorientierte Programmierung mit Java - SS 2014 In Verlauf des Semesters wollen wir ein Memory-Spiel programmieren, das sich dem Spieler etwa so präsentieren soll wie auf der folgenden Bildschirmkopie: Zu den Regeln des Memory-Spiels siehe z.b. http://de.wikipedia.org/wiki/memory_(spiel)

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Kapitel 14. Systemarchitektur

Kapitel 14. Systemarchitektur 1 Kapitel 14 Ziele 2 Grundprinzipien der verstehen Schichtenarchitekturen kennenlernen Modelle und Programme mit Paketen strukturieren Eine Architektur für eine einfache Bankanwendung konstruieren Grundprinzipien

Mehr

Kapitel 7: GUI-Rahmenwerk: AWT & Swing

Kapitel 7: GUI-Rahmenwerk: AWT & Swing Kapitel 7: GUI-Rahmenwerk: AWT & Swing 7.1 Aufbau & Funktionsweise 7.2 Beispiel Counter im Detail 7.3 Grafikprogrammierung an Beispielen 'The night is fine', the Walrus said, 'Do you admire the view?'

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 Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java

Hochschule Niederrhein Grundlagen der Prof. Dr. Nitsche Fachbereich 03 Java Programmierung Bachelor Informatik SS 2015 Übung 1. Grundlagen von Java Grundlagen von Java Aufgabe 1: Typen und Zuweisungen in Java Welche der folgenden Java-Anweisungen sind fehlerhaft? Handelt es sich um einen Compiler- oder einen Laufzeitfehler? Anmerkung: Folgefehler

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte

Mehr

RÖK Typo3 Dokumentation

RÖK Typo3 Dokumentation 2012 RÖK Typo3 Dokumentation Redakteur Sparten Eine Hilfe für den Einstieg in Typo3. Innpuls Werbeagentur GmbH 01.01.2012 2 RÖK Typo3 Dokumentation Inhalt 1) Was ist Typo3... 3 2) Typo3 aufrufen und Anmelden...

Mehr

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung Informatik Kurs 12 André Hoffmann Delphi Einführung in die Windows- Programmierung Grundlagen Entwicklung von Windows-Programmen Relativ unkompliziert durch typische, vorgefertigte Elemente Programmiertechnische

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

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

Begriffe: (grafische) Benutzeroberfläche, (grafische) Benutzerschnittstelle,

Begriffe: (grafische) Benutzeroberfläche, (grafische) Benutzerschnittstelle, Gestaltung der Benutzeroberfläche Begriffe: (grafische) Benutzeroberfläche, (grafische) Benutzerschnittstelle, GUI (graphics user interface), Drei Grundsätze vorab: Halten Sie sich, wo immer möglich, an

Mehr

Tetris soll als Computerspiel mittels Java realisiert werden, wobei ein objektorientierter Ansatz gewählt

Tetris soll als Computerspiel mittels Java realisiert werden, wobei ein objektorientierter Ansatz gewählt Informatik Tetris Seite 1 Tetris Tetris ist ein Computerspiel, bei dem man herunterfallende, immer aus vier Teilen bestehende Bausteine so drehen muss, dass sie möglichst ohne Lücken eine Mauer bilden.

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Die Benutzeroberfläche von PDF Editor besteht aus den folgenden Bereichen:

Die Benutzeroberfläche von PDF Editor besteht aus den folgenden Bereichen: Bedienungsanleitung CAD-KAS PDF Editor 3.1 Die Benutzeroberfläche von PDF Editor besteht aus den folgenden Bereichen: Hauptmenu Werkzeuge zum Bearbeiten der Datei inblase2:=false; Einige Funktionen des

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

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache

Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache Dipl. Ing. (FH) Hans-Peter Kiermaier Windows programmieren mit VisualBasic Einführung in die objektorientierte Programmiersprache 1 Allgemeines Die Geschichte von VisualBasic oder kurz VB: 1991 Visual

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

1 Grundlagen von Phase 5 Installiere das Programm Phase 5 auf dem Rechner.

1 Grundlagen von Phase 5 Installiere das Programm Phase 5 auf dem Rechner. Kapitel 1 Grundlagen von Phase 5 Seite 1 1 Grundlagen von Phase 5 Installiere das Programm Phase 5 auf dem Rechner. 1.1 Projekt anlegen Bevor du das Programm Phase 5 startest, musst du einen Ordner anlegen,

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner

Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner Programmieren? Das kann ich auch! Bau dir deinen eigenen Bildschirmschoner Christiane Taras Institut für Visualisierung und interaktive Systeme Universität Stuttgart GEFÖRDERT VON AKTIONSPARTNER Vorstellungsrunde

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

Ute Kalff Windows7 www.utekalff.de. Zusammenfassung aus Windows-Hilfe

Ute Kalff Windows7 www.utekalff.de. Zusammenfassung aus Windows-Hilfe Zusammenfassung aus Windows-Hilfe Anmerkung: Peek, Shake und Desktophintergrund-Diashow sind nicht in Windows 7 Home Basic oder Windows 7 Starter enthalten. Öffnen Sie in der Systemsteuerung den Eintrag

Mehr

Sie können Texte ansprechender gestalten, indem Sie diese mit Bildern auflockern.

Sie können Texte ansprechender gestalten, indem Sie diese mit Bildern auflockern. Gestaltung Word 2007 effektiv 4 GESTALTUNG Sie können Texte ansprechender gestalten, indem Sie diese mit Bildern auflockern. 4.1 Fotos Im Register Einfügen, Gruppe Illustrationen, öffnen Sie mit der Schaltfläche

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

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

Kennen, können, beherrschen lernen was gebraucht wird www.doelle-web.de

Kennen, können, beherrschen lernen was gebraucht wird www.doelle-web.de Inhaltsverzeichnis Inhaltsverzeichnis... 1 Die grundlegende Zellformatierung... 2 Grundlagen... 2 Formatierungsmöglichkeiten... 2 Designs verwenden... 2 Grundsätzliche Vorgehensweise beim Formatieren von

Mehr

Arbeiten mit Acrobat. Vorstellung von Adobe Acrobat Bearbeitung des Dokuments Präsentationen erstellen Teamarbeit

Arbeiten mit Acrobat. Vorstellung von Adobe Acrobat Bearbeitung des Dokuments Präsentationen erstellen Teamarbeit Arbeiten mit Acrobat Vorstellung von Adobe Acrobat Bearbeitung des Dokuments Präsentationen erstellen Teamarbeit Vollbildmodus Wählen Sie das Menü Fenster Vollbildmodus. Die aktuell angezeigte Seite verdeckt

Mehr

Praktikum Informatik - 1

Praktikum Informatik - 1 Hochschule der Medien Stuttgart Studiengang Audiovisuelle Medien Praktikum Informatik - 1 Aufgabensammlung Prof. Uwe Schulz, Prof. Dr. Simon Wiest Organisation des Informatik Praktikums Sommersemester

Mehr

Graphical User Interfaces mit

Graphical User Interfaces mit Graphical User Interfaces mit JavaFX Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung

Mehr

Text markieren mit der Maus. Text markieren mit der Tastatur. Text schnell formatieren. Löschen, überschreiben, rückgängig machen

Text markieren mit der Maus. Text markieren mit der Tastatur. Text schnell formatieren. Löschen, überschreiben, rückgängig machen Text markieren mit der Maus Ein Wort Einen Satz Eine Zeile Einen Absatz doppelt in das Word klicken S Taste gedrückt halten und in den Satz klicken in den Bereich links neben der Zeile klicken doppelt

Mehr

Inhalt Informationen zu Foxit PhantomPDF Advanced Editor... 3 Erste Schritte... 4

Inhalt Informationen zu Foxit PhantomPDF Advanced Editor... 3 Erste Schritte... 4 1 Inhalt Informationen zu Foxit PhantomPDF Advanced Editor... 3 Erste Schritte... 4 Advanced Editor installieren... 4 Advanced Editor aktivieren... 4 Advanced Editor deinstallieren... 4 Seiten verwenden...

Mehr

Einstellungen des Windows-Explorers

Einstellungen des Windows-Explorers Einstellungen des Windows-Explorers Die Ordnerstruktur des Explorers Der Explorer ist der Manager für die Verwaltung der Dateien auf dem Computer. Er wird mit Rechtsklick auf Start oder über Start Alle

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Besprechung der Aufgaben 1) Legen Sie das Android-Projekt HelloWorldApp an so wie es in den vorherigen Folien beschrieben

Mehr

GeODin Newsletter: Januar 2012

GeODin Newsletter: Januar 2012 Beyond Geology 25: Ein neues Eingabegitter macht die Datenerfassung- und pflege mit den Proben-, Ausbau- und Sondierungseditoren viel übersichtlicher. Außerdem ein wichtiger Update-Hinweis! Eingabegitter

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

Mitarbeitereinsatzplanung. easysolution GmbH 1

Mitarbeitereinsatzplanung. easysolution GmbH 1 Mitarbeitereinsatzplanung easysolution GmbH 1 Mitarbeitereinsatzplanung Vorwort Eines der wichtigsten, aber auch teuersten Ressourcen eines Unternehmens sind die Mitarbeiter. Daher sollten die Mitarbeiterarbeitszeiten

Mehr

Projekt Su-do-ku Generator

Projekt Su-do-ku Generator Projekt Su-do-ku Generator unter der Leitung von Univ.-Ass. Dr. Michael Hahsler verfasst für Abteilung für Informationswirtschaft Wirtschaftsuniversität Wien, UZA II 3.Ebene Augasse 2-6, A-1090 Wien, Austria

Mehr

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

Mehr

Java Desktop Anwendungen

Java Desktop Anwendungen 5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer: Nr Max Bewertung

Mehr

PRODUKTION UND GESTALTUNG INTERAKTIVER MEDIEN

PRODUKTION UND GESTALTUNG INTERAKTIVER MEDIEN PRODUKTION UND GESTALTUNG INTERAKTIVER MEDIEN 1) Einführung in Photoshop Rebecca Rottensteiner, B.A. Photoshop Allgemein Dateiformate Design in Photoshop umsetzten Besprechung Konzepte Webschriftarten

Mehr

Makros erstellen und aufrufen Dr. V.Thormählen

Makros erstellen und aufrufen Dr. V.Thormählen Inhalt Mit Makros arbeiten... 2 Makro erstellen... 3 Makro aufrufen... 4 1. Tastenkürzel zuordnen... 4 2. Schnellzugriffsleiste anpassen... 6 3. Menüband anpassen... 8 Fazit... 11 Listings Listing 1: Codezeilen

Mehr

EWA - JAVA - Teil 2 - Klassenbibliotheken und GUI

EWA - JAVA - Teil 2 - Klassenbibliotheken und GUI Vorlesungsreihe Entwicklung webbasierter Anwendungen EWA - JAVA - Teil 2 - Klassenbibliotheken und GUI Prof. Dr.-Ing. Thomas Wiedemann email: wiedem@informatik.htw-dresden.de HOCHSCHULE FÜR TECHNIK UND

Mehr

6.3 Ereignisgesteuerte Programmierung

6.3 Ereignisgesteuerte Programmierung 6.3 Ereignisgesteuerte Programmierung Im Gegensatz zur klassischen Programmierung geht man bei der ereignisgesteuerten Programmierung davon aus, dass ein Programm immer aktiv bleibt, bis es explizit beendet

Mehr

Software Engineering

Software Engineering Software Engineering Softwareentwicklungsmethoden und -modelle Prof. Dr.-Ing. habil. Reiner R. Dumke http://www.smlab.de R. Dumke 2-1 Software Engineering - LV-Inhalt - 3. Softwareentwicklungsmethoden

Mehr

Anwendungsbeschreibung des ReNoStar-Druckers

Anwendungsbeschreibung des ReNoStar-Druckers Anwendungsbeschreibung des ReNoStar-Druckers Stand September 2007 Inhalt Inhalt... 2 Anforderung aus der Praxis... 3 Die ReNoStar Drucker-Leiste... 3 Erstellen einer Vorlage... 3 Reihenfolge der Vorlagen

Mehr

Von: Sven Weltring, Viola Berlage, Pascal Küterlucks, Maik Merscher

Von: Sven Weltring, Viola Berlage, Pascal Küterlucks, Maik Merscher Von: Sven Weltring, Viola Berlage, Pascal Küterlucks, Maik Merscher Inhaltsverzeichnis 1. Desktop 2. Erklärung von Tastatur und Maus 3. Computer ausschalten 4. Neuer Ordner erstellen 5. Microsoft Word

Mehr

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Eckart Modrow LEGO-Mindstorms-Roboter S. 1 LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Benutzung in einer Programmierumgebung Für die LEGO-Roboter stehen unter allen gängigen Betriebssystemen

Mehr

Tipps & Tricks ArCon. Schriftfeldmakro. Informationszeitschrift der DI KRAUS & CO GesmbH Seite 18

Tipps & Tricks ArCon. Schriftfeldmakro. Informationszeitschrift der DI KRAUS & CO GesmbH Seite 18 Im Konstruktionsmodus ist in der rechten unteren Ecke des Blattes ein Schriftfeld zu sehen. Dieses können Sie verändern, indem Sie doppelt darauf klicken. Nun haben Sie, je nach Schriftfeld, verschiedene

Mehr

Bilder im Internet. Hans Magnus Enzensberger

Bilder im Internet. Hans Magnus Enzensberger Kapitel 4 Alle reden von Kommunikation, aber die wenigsten haben sich etwas mitzuteilen. Hans Magnus Enzensberger Bilder im Internet Nach der etwas umfangreichen vorangehenden Lektion zum Ausklang der

Mehr

Modellierung einer Android-App. 2. Mai 2013

Modellierung einer Android-App. 2. Mai 2013 Modellierung einer Android-App 2. Mai 2013 Taentzer Software-Praktikum 2013 42 Überblick Modellierung der wesentlichen Aspekte Welche Anwendungsfälle haben wir? Übersicht durch Anwendungsfalldiagramme

Mehr

10. Die Programmoberfläche

10. Die Programmoberfläche DIE PROGRAMMOBERFLÄCHE 10. Die Programmoberfläche Menüband 10.1. Mit dem Menüband arbeiten Die Benutzeroberfläche von Office 2010 wurde gegenüber der Version 2003 komplett neu gestaltet. Anstelle von Menüzeile

Mehr

StickSecurity Home Edition 2006

StickSecurity Home Edition 2006 StickSecurity Home Edition 2006 Inhalt: 1. Konfiguration Sprache wählen Wechseldatenträger wählen 1. 1 Allgemein Bedienung Hotkey 2. Menü Aktionen Passwort Sonstige USB Stick Info USB Explorer USB Backup

Mehr

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen P3.1. Gliederung Rechnerpraktikum zu Kapitel 3 Grafische Benutzeroberflächen Einleitung Ein erstes Beispiel Schwingkreisberechnung mit grafischer Oberfläche Codeschloss mit Zustandsautomat Verkehrsampel

Mehr

Vektorisieren von Bitmaps

Vektorisieren von Bitmaps Willkommen bei CorelDRAW, dem umfassenden vektorbasierten Zeichen- und Grafikdesign- Programm für Grafikprofis. In dieser Übungsanleitung werden Sie ein Bitmap-Bild vektorisieren, damit es dann in ein

Mehr

Inhaltsverzeichnis VII

Inhaltsverzeichnis VII Inhaltsverzeichnis 1 Einleitung & Grundlagen 1 1.1 Was behandeln wir in dem einleitenden Kapitel? 1 1.2 Die Welt von Java und JavaFX 2 1.2.1 Was ist Java? 2 1.2.2 Etwas zur Historie von Java 3 1.2.3 Wo

Mehr

2 Programmentwicklung mit Java

2 Programmentwicklung mit Java 26 2 Programmentwicklung mit Java 2 Programmentwicklung mit Java Die Programmentwicklung mit Java wird in drei Schritten eingeführt: Zuerst wird die prinzipielle Arbeitsweise geschildert, danach wird das

Mehr

2 Fenster - Hauptelement des GUI

2 Fenster - Hauptelement des GUI Einführung in die objektorientierte Programmierung mit C# 13 2 Bei der Arbeit mit Computern erwarten die Nutzer eine komfortable Bedienung über eine eine»grafische Oberfläche«(engl.: graphical user interface

Mehr

bestinformed Javaclient Version 4.2 Funktionsumfang

bestinformed Javaclient Version 4.2 Funktionsumfang bestinformed Javaclient Version 4.2 Inhaltsverzeichnis 1. Einführung...3 2. Anzeige von Infos...3 2.1 Laufband...3 2.2 Sound...4 2.3 Bilder...4 2.4 Popup...4 3. Javaclient Konfigurationsfenster...5 4.

Mehr