Architektur interaktiver Systeme

Größe: px
Ab Seite anzeigen:

Download "Architektur interaktiver Systeme"

Transkript

1 Architektur interaktiver Systeme Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version , Entkopplung durch Sichten 2. Ereignisgesteuerter Programmablauf 3. Benutzungsoberflächen 4. Benutzungsoberflächen mit Swing Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 1 Andere Literatur [Herrmann] M. Veit, S. Herrmann. Model-View-Controller and Object Teams: A Perfect Match of Paradigms. AOSD 2003, ACM Press Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 2

2 Architektur interaktiver Systeme 1) Entkopplung durch Sichten Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 3 Schichtenarchitektur Benutzungsoberfläche - Teile des Kontextmodells Window Button Menu (Fachliches) Modell Teammitglied Teambesprechung Ablaufsteuerung Datenhaltung z.b. relationale Datenbank Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 4

3 Schichtenarchitektur Benutzungsoberfläche (Fensteroberfläche, Widget-Hierarchie) Window Button Menu Play-In (asynchron) Play-out (synchron, aber multiple Sichten) Ablauf- Steuerung (Ereignis- Verwaltung) (Fachliches) Modell Teammitglied Teambesprechung Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 5 GUI-Programme laufen in 2 Phasen 1) Aufbau der Fensteroberflächen (-fronten, widget hierarchies) durch Konstruktoraufrufe und Einfügen in Fensterhierarchie (embodiment) 2) Reaktionsphase, 1) bei der die Benutzeraktionen vom System (Ereignisverwaltung) als Ereignisobjekte ins Programm gegeben werden (Play-In) 2) Bei der in der Anwendungslogik durchgeführten Aktionen die Fensteroberfläche auf den neuesten Stand gebracht wird (Play-Out) Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 6

4 Sichten: Zähler als motivierendes Beispiel Sicht 1 Sicht 2 cf: CounterFrame Modell c: Counter ctr = 7 Counter ctr + count() + reset() + getvalue() Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 7 Modell und Sicht Sicht 1 Sicht 2 Methodenaufrufe => Änderungen (play-in, asynchron ausgelöst) Modell Benachrichtigung vieler Sichten über Änderungen (play-out, synchron, viele Listener) Beispiele: Frage: Verschiedene Dokumentenansichten, Statusanzeigen, Verfügbarkeit von Menüpunkten Wie hält man das Modell in der Anwendungslogik unabhängig von den beliebig vielen Sichten darauf? Muster "Observer" Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 8

5 Ein Zähler (Beispiel fachliches Modell) class Counter { private int ctr = 0; public void count () { ctr++; public void reset () { ctr = 0; public int getvalue () { return ctr; Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 9 Beobachtbares Modell (Model) class Counter extends Observable { private int ctr = 0; public void count () { ctr++; setchanged(); notifyobservers(); public void reset () { ctr = 0; setchanged(); notifyobservers(); public int getvalue () { return ctr; Counter wird Subjekt im Muster Observer Das fachliche Modell enthält keinerlei Bezug auf die Benutzungsoberfl äche Beliebig viele Listener in Oberfl äche möglich Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 10

6 Architektur interaktiver Systeme 2 Ereignisgesteuerter Programmablauf (Asynchroner Programmablauf beim Play-In) I claim not to have controlled events, but confess plainly that events have controlled me. Abraham Lincoln, 1864 Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 11 Ereignisse Definition Ein Ereignis ist ein Vorgang in der Umwelt des Softwaresystems von vernachlässigbarer Dauer, der für das System von Bedeutung ist. Eine wichtige Gruppe von Ereignissen sind Benutzeraktionen: Drücken eines Knopfs Auswahl eines Menüpunkts Verändern von Text Zeigen auf ein Gebiet Schließen eines Fensters Verbergen eines Fensters Drücken einer Taste Mausklick Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 12

7 Beispiel für Ereignisverarbeitung Das erste Java-Programm in der Vorlesung mit einer "graphischen Benutzungsoberfläche"... Hinweis "für Java-Insider": Hier noch reines "AWT", im nächsten Kapitel wird "Swing" eingeführt werden. Aufgabe: Ein leeres, aber schliessbares Fenster anzeigen Schliessknopf Hinweis: Fensterdarstellung ("look and feel") gemäß Solaris CDE; Schliessknopf in Windows-Darstellung: Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 13 Ereignis-Klassen und ihre auslösenden Oberflächenelemente Ereignis-Klassen in (Java-)Benutzungsoberflächen: WindowEvent ActionEvent MouseEvent KeyEvent,... Bezogen auf Klassen für Oberflächenelemente Window Frame Button TextField,... Zuordnung (Beispiele): Window (mit Frame) erzeugt WindowEvent z.b. Betätigung des Schliessknopfes Button erzeugt ActionEvent bei Betätigung des Knopfes Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 14

8 Hauptprogramm für Fensteranzeige import java.awt.*; class ExampleFrame extends Frame { public ExampleFrame () { settitle("untitled"); setsize(150, 50); setvisible(true); class GUI1 { public static void main (String[] argv) { // Phase 1: Aufbau der Fensteroberfläche ExampleFrame f = new ExampleFrame(); //.. implizites Betreten der Reaktionsschleife: // Phase 2: reaktives Programm Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 15 Registrierung für Listener Im Auslöser java.awt.frame findet sich eine Registrierungsprozedur (ererbt von java.awt.window): public class Frame... { Observable (Subject) public void addwindowlistener (WindowListener l) Observer java.awt.event.windowlistener ist eine Schnittstelle: Observing public interface WindowListener { (Observer)... Methoden zur Ereignisbehandlung Vergleich mit Observer-Muster: Frame bietet einen "Observable (Subject)"-Mechanismus Window-Listener ist eine "Observer"-Schnittstelle Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 16

9 Hauptprogramm für schließbares Fenster import java.awt.*; import java.awt.event.*; class WindowCloser implements WindowListener {... siehe später... class ExampleFrame extends Frame { public ExampleFrame () { settitle("untitled"); setsize(150, 50); addwindowlistener(new WindowCloser()); setvisible(true); class GUI2 { public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); reagieren (Phase 2) Anmelden Subjekt starten (Ereignisverwaltung) Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 17 Ereignis-Bearbeitung (1) Laufzeit-System (Ereignisverwaltung) betätigt Schliessknopf Benutzer Reaktion auf ein Ereignis durch Programm: Ereignis wird vom Laufzeitsystem erkannt Programm soll von technischen Details entkoppelt werden Beobachter-Prinzip: Programmteile registrieren sich für bestimmte Ereignisse Laufzeitsystem sorgt für Aufruf an passender Stelle Objekte, die Ereignisse beobachten, heißen bei Java Listener. Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 18

10 Ereignis-Bearbeitung (2) Laufzeit-System betätigt Schliessknopf Benutzer f: Frame Quelle vom System (Ereignisverw.) neu erzeugt: e: WindowEvent registriert bei l: WindowListener Delegation: Aufruf einer Methode von l mit Argument e Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 19 Hierarchie der AWT EventListener (Widget- Listeners) und Event-Objekte EventListener Die Vererbungshierarchien EventListener und AWTEvent werden parallel variiert EventObject WindowListener TextListener void TextValueChanged(TextEvent e) AWTEventListener void eventdispatched(awtevent event) AWTEvent WindowEvent TextEvent MenuListener void menuselected(menuevent e) void menucancelled(menuevent e) void menudeselected(menuevent e) ActionListener void actionperformed(actionevent e) ChangeListener void statechanged(changeevent e) PropertyChangeListener void propertychange(propertychangeevent evt) WindowFocusListener void windowgainedfocus(windowevent e) void windowlostfocus(windowevent e) MenuEvent ChangeEvent ActionEvent PropertyChangeEvent Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 20

11 java.awt.event.windowlistener /** empty marker interface, from which all listeners have to inherit */ public interface EventListener { ; public interface WindowListener extends EventListener { public void windowclosed (WindowEvent ev); public void windowopened (WindowEvent ev); public void windowiconified (WindowEvent ev); public void windowdeiconified (WindowEvent ev); public void windowactivated (WindowEvent ev); public void windowdeactivated (WindowEvent ev); public void windowclosing (WindowEvent ev); java.util.eventlistener:basisinterface für alle "Listener" Definition von Ereignissen: java.awt.event.windowevent Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 21 public class WindowEvent extends AWTEvent {... // Konstruktor, wird vom System aufgerufen public WindowEvent (Window source, int id); // Abfragemöglichkeiten public Window getwindow();... Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 22

12 java.awt.event.actionevent, ActionListener public class ActionEvent extends AWTEvent {... // Konstruktor, wird vom System // (Ereignisverwaltung) aufgerufen public ActionEvent (Window source, int id, String command); // Abfragemöglichkeiten public Object getsource (); public String getactioncommand();... public interface ActionListener extends EventListener { public void actionperformed (ActionEvent ev); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 23 Wer reagiert denn hier auf Ereignisse? Ereignis-Listener sind Schnittstellen, keine Implementierungsklassen Wie programmiert man die Klassen, die die abhörenden Schnittstellen implementieren? Eine neue Klasse (Implementierungsklasse) Eine Default-Implementierung benutzen (WindowAdapter) Eine Unterklasse der Default-Implementierung WindowAdapter Eine innere Klasse Eine anonyme Klasse Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 24

13 a) Implementierungsklasse WindowCloser für Ereignis "Schließen" import java.awt.*; import java.awt.event.*; class WindowCloser implements WindowListener { // Reagiert nur auf Schließen public void windowclosed (WindowEvent ev) { public void windowopened (WindowEvent ev) { public void windowiconified (WindowEvent ev) { public void windowdeiconified (WindowEvent ev) { public void windowactivated (WindowEvent ev) { public void windowdeactivated (WindowEvent ev) { public void windowclosing(windowevent event) { System.exit(0); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 25 Hauptprogramm für schließbares Fenster import java.awt.*; import java.awt.event.*; class WindowCloser implements WindowListener {... siehe vorige Folie... class ExampleFrame extends Frame { public ExampleFrame () { settitle("untitled"); setsize(150, 50); addwindowlistener(new WindowCloser()); setvisible(true); class GUI2 { public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 26

14 b) Vereinfachung 1: Unterklasse der DefaultImplementierung WindowAdapter WindowAdapter bietet eine Default-Implementierung für die WindowListener-Funktionen an: package java.awt.event; public abstract class WindowAdapter implements WindowListener { public void windowclosed (WindowEvent ev) { public void windowopened (WindowEvent ev) { public void windowiconified (WindowEvent ev) { public void windowdeiconified (WindowEvent ev) { public void windowactivated (WindowEvent ev) { public void windowdeactivated (WindowEvent ev) { public void windowclosing (WindowEvent ev) { Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 27 Vereinfachung 1: Unterklasse der DefaultImplementierung WindowAdapter Redefinition einer leeren Reaktionsmethode: import java.awt.*; import java.awt.event.*; class WindowCloser extends WindowAdapter { public void windowclosing(windowevent event) { System.exit(0); class ExampleFrame extends Frame { public ExampleFrame () { settitle("untitled"); setsize(150, 50); addwindowlistener(new WindowCloser()); setvisible(true); class GUI3 { public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 28

15 Vereinfachung 1: Unterklasse der DefaultImplementierung WindowAdapter <<interface>> WindowListener windowclosing (e: WindowEvent) Window addwindowlistener (l: WindowListener) <<use>> WindowAdapter WindowEvent Frame setsize settitle setvisible WindowCloser registriert bei ExampleFrame Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 29 Diskussion zum Begriff "Adapter" <<interface>>windowlistener windowclosing (e: WindowEvent) window... () Ist das eine Anwendung des Adapter-Musters? Target Adaptee Adapter Adapter WindowAdapter WindowCloser windowclosing (e: WindowEvent).. sollte besser DefaultWindowListener heissen.. Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 30

16 b) Vereinfachung 2: Innere Klasse benutzen import java.awt.*; import java.awt.event.*; class ExampleFrame extends Frame { /* inner */ class WindowCloser extends WindowAdapter { public void windowclosing(windowevent event) { System.exit(0); public ExampleFrame () { settitle("untitled"); setsize(150, 50); addwindowlistener(new WindowCloser()); setvisible(true); class GUI4 { public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 31 c) Vereinfachung 3: Anonyme Klasse benutzen import java.awt.*; import java.awt.event.*; class ExampleFrame extends Frame { public ExampleFrame () { settitle("untitled"); setsize(150, 50); addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent event) { System.exit(0); ); setvisible(true); class GUI5 { public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 32

17 Architektur interaktiver Systeme 3 Benutzungsoberfl ächen.. Bringe Ereignisse, auslösende Fensterelemente (Sicht) und Modell zusammen Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 33 Graphische Benutzungsoberflächen 1980: Smalltalk-80-Oberfläche (Xerox) 1983/84: Lisa/Macintosh-Oberfläche (Apple) 1988: NextStep (Next) 1989: OpenLook (Sun) 1989: Motif (Open Software Foundation) 1987/91: OS/2 Presentation Manager (IBM) 1990: Windows 3.0 (Microsoft) : Windows 95/NT/98/2000/ME/XP (Microsoft) 1995: Java AWT (SunSoft) 1997: Swing Components for Java (SunSoft) 2002: SWT von Eclipse 2006: XAML, Silverlight (Microsoft) Xswt, xswing, XUL (Mozilla) etc. Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 34

18 Widgets und Datenstrukturen Fensterstrukturen sind hierarchisch (Einkapselung von Widgets) Datenstruktur in Anwendung wird den Widget-Hierarchien zugeordnet Screen-Buffer zeigt die Widget-Struktur bitweise (paint()) widget- jdk- Observer Observer View 1 - Widget Tree 1 (Fenster-Struktur) Modell: Datenstruktur in Anwendungslogik (und Datenbank) Screen Buffer View 2 - Widget Tree 2 (Fenster-Struktur) Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 35 Zusammenspiel der Widget-Struktur und der Anwendungslogik Interaktive Anwendungen mit GUI laufen in Phasen: 1) Netzaufbau-Phase: Aufbau der Fensterstrukturen des GUI (widget hierarchies) Aufbau der Datenstrukturen in der Anwendungslogik (Modellstruktur) Anschluß des GUI-Reaktionscodes auf Veränderungen der Modellstruktur (View wird Observer des Modells, Vorbereitung des Play-Out, callbacks) Anschluß des Modell-Reaktionscode auf Benutzereingaben (Controller ist Observer der Widgets, Vorbereitung des Play-In) 2) Arbeitsphase (Reaktive Phase) bei der die Benutzeraktionen vom System als Ereignisobjekte ins Programm gegeben werden, d.h. die Reaktionsobjekte des Modells als Listener benachrichtigt und ausgeführt werden (Play-In) Bei denen die GUI-Views auf Modelländerungen durch Neuanzeigen reagieren (Play-Out) Der Kontrollfluß eines GUI-Programms wird nie explizit spezifiziert, sondern ergibt sich aus den Aktionen des Benutzers Das GUI-Programm reagiert nur (reaktives System) Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 36

19 Aufbau der Widget-Struktur Verschiedene Techniken: Durch Konstruktoraufrufe und Additionen von Unterwidgets zu Oberwidgets (encapsulation) rein in Java-AWT/Swing, mit expliziter Konstruktion der Widget-Hierarchien Durch einen XML-Baum, der von einem XML-Parser eingelesen und als Objekt-Struktur im Speicher abgelegt wird (XUL - Firefox, XAML - Vista) Durch einen HTML-Baum, der von einem Brauser interpretiert wird (für Webanwendungen) Durch einen HTML-Baum, der bei Veränderungen inkrementell im Brauser nachgeladen wird (Web 2.0, Ajax) Client Server Modell: Datenstruktur View 1 - Widget Tree 1 in Anwendungslogik in html / Ajax (und Datenbank) Screen Buffer Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 37 Architektur interaktiver Systeme 4 Aufbau der Benutzungsoberfl äche (Widget-Hierarchie) mit Swing Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 38

20 Hier: Expliziter Aufbau mit AWT und Swing Abstract Window Toolkit (AWT): Seit Version 1.1 Standard-Bestandteil von Java Umfangreiche Bibliothek von Oberflächen-Bausteinen Plattformunabhängige Schnittstellen, aber grosse Teile plattformspezifisch realisiert ("native code") Swing-Bibliotheken Seit Version 1.2 Standard-Bestandteil von Java Noch umfangreichere Bibliothek von Oberfächen-Bausteinen Plattformunabhängiger Code (d.h. Swing ist weitestgehend selbst in Java realisiert) Wesentlich größerer Funktionsumfang (nicht auf den "kleinsten Nenner" der Plattformen festgelegt) Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 39 Bibliotheken von AWT und Swing Wichtigste AWT-Pakete: java.awt: u.a. Grafik, Oberflächenkomponenten, Layout-Manager java.awt.event: Ereignisbehandlung Andere Pakete für weitere Spezialzwecke Wichtigstes Swing-Paket: javax.swing: Oberflächenkomponenten Andere Pakete für Spezialzwecke Viele AWT-Klassen werden auch in Swing verwendet! Standard-Import-Vorspann: import java.awt.*; import java.awt.event.*; import javax.swing.*; (Naiver) Unterschied zwischen AWT- und Swing-Komponenten: AWT: Button, Frame, Menu,... Swing: JButton, JFrame, JMenu,... Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 40

21 AWT/Swing-Klassenhierarchie (Ausschnitt) Dies ist nur ein sehr kleiner Ausschnitt Präfixe "java." und "javax." hier weggelassen. lang.object awt.component awt.container swing.jcomponent awt.window swing. JButton swing. JLabel swing. JTextComponent swing. JPanel swing. JFrame swing. JTextField Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 41 Component, Container, Window, Frame, Panel awt.component (abstrakt): Oberklasse aller Bestandteile der Oberfläche public void setsize (int width, int height); public void setvisible (boolean b); awt.container (abstrakt): Oberklasse aller Komponenten, die andere Komponenten enthalten public void add (Component comp); public void setlayout (LayoutManager mgr); awt.window Fenster ohne Rahmen oder Menüs public void pack (); //Größe anpassen swing.jframe Größenveränderbares Fenster mit Titel public void settitle (String title); swing.jpanel Zusammenfassung von Swing-Komponenten JPanel Component Container Window JFrame Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 42

22 JComponent Oberklasse aller in der Swing-Bibliothek neu implementierten, verbesserten Oberflächenkomponenten. Eigenschaften u.a.: Einstellbares "Look-and-Feel" Komponenten kombinierbar und erweiterbar Rahmen für Komponenten void setborder (Border border); (Border-Objekte mit BorderFactory erzeugbar) ToolTips -- Kurzbeschreibungen, die auftauchen, wenn der Cursor über der Komponente liegt void settooltiptext (String text); Automatisches Scrolling Beispiele für weitere Unterklassen von JComponent: JList: Auswahlliste JComboBox: "Drop-Down"-Auswahlliste mit Texteingabemöglichkeit JPopUpMenu: "Pop-Up"-Menü JFileChooser: Dateiauswahl Component Container JComponent Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 43 Zähler-Beispiel: Grobentwurf der Oberfläche JPanel valuepanel JPanel buttonpanel CounterFrame cf abgeleitet von JFrame Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 44

23 Die Sicht (View) mit Swing: Gliederung, 1. Versuch class CounterFrame extends JFrame { JPanel valuepanel = new JPanel(); JTextField valuedisplay = new JTextField(10); JPanel buttonpanel = new JPanel(); JButton countbutton = new JButton("Count"); JButton resetbutton = new JButton("Reset"); JButton exitbutton = new JButton("Exit"); public CounterFrame (Counter c) { settitle("swingcounter"); valuepanel.add(new JLabel("Counter value")); valuepanel.add(valuedisplay); valuedisplay.seteditable(false); //.. value panel hinzufügen getcontentpane().add(valuepanel, BorderLayout.NORTH); buttonpanel.add(countbutton); buttonpanel.add(resetbutton); buttonpanel.add(exitbutton); //.. button panel hinzufügen getcontentpane().add(buttonpanel, BorderLayout.SOUTH); pack(); setvisible(true); Subjekt starten (Ereignisverwaltung) Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 45 Hinzufügen von Komponenten zu JFrames Ein JFrame ist ein "Container", d.h. dient zur Aufnahme weiterer Elemente. Ein JFrame ist intern in verschiedene "Scheiben" (panes) organisiert. Die wichtigste ist die content pane. content pane menu bar layered pane glass pane In JFrame ist definiert: Container getcontentpane(); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 46

24 Die Sicht (View): Gliederung, 2. Versuch class CounterFrame extends JFrame { JPanel valuepanel = new JPanel(); JPanel buttonpanel = new JPanel(); public CounterFrame (Counter c) { settitle("swingcounter"); getcontentpane().add(valuepanel); getcontentpane().add(buttonpanel); pack(); setvisible(true); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 47 Zähler-Beispiel: Entwurf der Wertanzeige JPanel valuepanel JLabel valuelabel JTextField valuedisplay Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 48

25 TextComponent, TextField, Label, Button JTextComponent: Oberklasse von JTextField und JTextArea public void settext (String t); public String gettext (); public void seteditable (boolean b); JTextField: Textfeld mit einer Zeile public JTextField (int length); JLabel: Einzeiliger unveränderbarer Text public JLabel (String text); Component Container JComponent JTextComponent JTextField JButton JLabel JButton: Druckknopf mit Textbeschriftung public JButton (String label); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 49 Die Sicht (View): Elemente der Wertanzeige class CounterFrame extends JFrame { JPanel valuepanel = new JPanel(); JTextField valuedisplay = new JTextField(10); JPanel buttonpanel = new JPanel(); public CounterFrame (Counter c) { settitle("swingcounter"); valuepanel.add(new JLabel("Counter value")); valuepanel.add(valuedisplay); valuedisplay.seteditable(false); getcontentpane().add(valuepanel); getcontentpane().add(buttonpanel); pack(); setvisible(true); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 50

26 Zähler-Beispiel: Entwurf der Bedienelemente JPanel buttonpanel JButton countbutton JButton resetbutton JButton exitbutton Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 51 Die Sicht (View): Bedienelemente class CounterFrame extends JFrame { JPanel valuepanel = new JPanel(); JTextField valuedisplay = new JTextField(10); JPanel buttonpanel = new JPanel(); JButton countbutton = new JButton("Count"); JButton resetbutton = new JButton("Reset"); JButton exitbutton = new JButton("Exit"); public CounterFrame (Counter c) { settitle("swingcounter"); valuepanel.add(new JLabel("Counter value")); valuepanel.add(valuedisplay); valuedisplay.seteditable(false); getcontentpane().add(valuepanel); buttonpanel.add(countbutton); buttonpanel.add(resetbutton); buttonpanel.add(exitbutton); getcontentpane().add(buttonpanel); pack(); setvisible(true); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 52

27 Layout-Manager Definition Ein Layout-Manager ist ein Objekt, das Methoden bereitstellt, um die graphische Repräsentation verschiedener Objekte innerhalb eines Container-Objektes anzuordnen. Formal ist LayoutManager ein Interface, für das viele Implementierungen möglich sind. In Java definierte Layout-Manager (Auswahl): FlowLayout (java.awt.flowlayout) BorderLayout (java.awt.borderlayout) GridLayout (java.awt.gridlayout) In awt.component: public void add (Component comp, Object constraints); erlaubt es, zusätzliche Information (z.b. Orientierung, Zeile/Spalte) an den Layout-Manager zu übergeben Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 53 Flow-Layout Grundprinzip: Anordnung analog Textfluß: von links nach rechts und von oben nach unten Default für Panels z.b. in valuepanel und buttonpanel für Hinzufügen von Labels, Buttons etc. Parameter bei Konstruktor: Orientierung auf Zeile, Abstände Constraints bei add: keine Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 54

28 Border-Layout Grundprinzip: Orientierung nach den Seiten (N, S, W, O) bzw. Mitte (center) Default für Window, Frame z.b. in CounterFrame für Hinzufügen von valuepanel, buttonpanel Parameter bei Konstruktor: Keine Constraints bei add: BorderLayout.NORTH, SOUTH, WEST, EAST, CENTER Oberer ("Nord")-Bereich (z.b. valuepanel) Unterer ("Süd")-Bereich (z.b. buttonpanel) Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 55 Grid-Layout Grundprinzip: Anordnung nach Zeilen und Spalten Parameter bei Konstruktor: Abstände, Anzahl Zeilen, Anzahl Spalten Constraints bei add: Keine 1,1 1,2 1,3 2,1 2,2 2,3 Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 56

29 Die Sicht (View): Alle sichtbaren Elemente class CounterFrame extends JFrame { JPanel valuepanel = new JPanel(); JTextField valuedisplay = new JTextField(10); JPanel buttonpanel = new JPanel(); JButton countbutton = new JButton("Count"); JButton resetbutton = new JButton("Reset"); JButton exitbutton = new JButton("Exit"); public CounterFrame (Counter c) { settitle("swingcounter"); valuepanel.add(new JLabel("Counter value")); valuepanel.add(valuedisplay); valuedisplay.seteditable(false); getcontentpane().add(valuepanel, BorderLayout.NORTH); buttonpanel.add(countbutton); buttonpanel.add(resetbutton); buttonpanel.add(exitbutton); getcontentpane().add(buttonpanel, BorderLayout.SOUTH); pack(); setvisible(true); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 57 Model-View-Controller-Architektur GUI-Reagiert-Auf-Modelländerungen: Observer (Play-Out) Modell-Reagiert-Auf-View: Controller (Play-In) View Controller <<beobachtet>> bc: ButtonController cf: CounterFrame Play-In Play-Out <<beobachtet>> <<steuert>> Model c: Counter ctr = 7 Counter ctr + count() + reset() + getvalue() Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 58

30 Zähler-Beispiel für das Play-Out: Anbindung View an Model class CounterFrame extends JFrame // View implements Observer {... JTextField valuedisplay = new JTextField(10);... // connecting model to view public CounterFrame /*View*/ (Counter c /*Model*/) {... valuepanel.add(valuedisplay); valuedisplay.seteditable(false); valuedisplay.settext(string.valueof(c.getvalue()));... c.addobserver(this); // Registring view at model pack(); setvisible(true); // view listens at model public void update (Observable o, Object arg) { Counter c = (Counter) o; valuedisplay.settext(string.valueof(c.getvalue())); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 59 Wdh: java.awt.event.actionevent, ActionListener public class ActionEvent extends AWTEvent {... // Konstruktor wird vom System aufgerufen public Object getsource () public String getactioncommand()... public interface ActionListener extends EventListener { public void actionperformed (ActionEvent ev); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 60

31 Die Steuerung des Play-In mit dem Controller Zum Play-In wird der Controller ein Listener der View-Widgets (hier buttons) Die update-methode heisst actionperformed(actionevent), da die Ablaufsteuerung des JDK diese sucht und aufruft // Die Steuerung belauscht die Knöpfe class ButtonController // Controller implements ActionListener { Counter mycounter; // widget-observer public void actionperformed (ActionEvent event) { String cmd = event.getactioncommand(); if (cmd.equals("count")) mycounter.count(); // Aktion auf Modell if (cmd.equals("reset")) mycounter.reset(); // Aktion if (cmd.equals("exit")) System.exit(0); // Aktion public ButtonController (Counter c) { mycounter = c; Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 61 Play-In, Zähler-Beispiel: Anbindung des Controllers an mehrere Views (Subjekte) class CounterFrame extends JFrame {... JPanel buttonpanel = new JPanel(); JButton countbutton = new JButton("Count"); JButton resetbutton = new JButton("Reset"); JButton exitbutton = new JButton("Exit"); public CounterFrame (Counter c) {... ButtonController bc = new ButtonController(c); // controller listens at another view countbutton.addactionlistener(bc); buttonpanel.add(countbutton); // controller listens at another view resetbutton.addactionlistener(bc); buttonpanel.add(resetbutton); // controller listens at another view exitbutton.addactionlistener(bc); buttonpanel.add(exitbutton);... Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 62

32 Alles zusammen: CounterFrame (1) class CounterFrame extends JFrame implements Observer { JPanel valuepanel = new JPanel(); JTextField valuedisplay = new JTextField(10); JPanel buttonpanel = new JPanel(); JButton countbutton = new JButton("Count"); JButton resetbutton = new JButton("Reset"); JButton exitbutton = new JButton("Exit"); public CounterFrame (Counter c) { settitle("swingcounter"); valuepanel.add(new JLabel("Counter value")); valuepanel.add(valuedisplay); valuedisplay.seteditable(false); valuedisplay.settext(string.valueof(c.getvalue())); getcontentpane().add(valuepanel,borderlayout.north ); ButtonController bc = new ButtonController(c); countbutton.addactionlistener(bc); buttonpanel.add(countbutton); resetbutton.addactionlistener(bc); buttonpanel.add(resetbutton); exitbutton.addactionlistener(bc); buttonpanel.add(exitbutton); getcontentpane().add(buttonpanel,borderlayout.south); Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 63 Alles zusammen: CounterFrame (2) addwindowlistener(new WindowCloser()); c.addobserver(this); pack(); setvisible(true); public void update (Observable o, Object arg) { Counter c = (Counter) o; valuedisplay.settext(string.valueof(c.getvalue())); class ButtonController implements ActionListener {... (wie oben)... class WindowCloser implements WindowListener {... (wie oben)... Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 64

33 Überblick MVC c:controller c:controller c:controller user input observer direct change messages 1 1 v:view v:view v:view * model change model read * change messages observer 1 1 change messages observer m:model [Herrmann] {xor Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 65 Probleme im MVC Wiederverwendung von Sichten und Controller wie? Modell ist abstrakte Klasse (white-box framework mit Variationspunkt Modell) Sicht ist Rolle der Modellklasse (open role framework) Granularität der Ereignisse: Welche Änderungen des Modells sollen en-bloc von Sichten übernommen werden? Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 66

34 Was haben wir gelernt? GUI-Programme laufen in 2 Phasen: Aufbau der Fensterfronten (widget hierarchies) durch Konstruktoraufrufe und Additionen (embodiment) Vorbereitung Play-Out: Anschluß des View-Reaktionscodes als jdk-observer des Modells Vorbereitung Play-In: Anschluß des Controller als widget-observer der Views Reaktionsphase, bei der die Benutzeraktionen vom System als Ereignisobjekte ins Programm gegeben werden: der Controller als Listener benachrichtigt und ausgeführt werden (Play-In) die Views bzw. der Controller als Listener des Modells benachrichtigt werden (Play-Out) Der Kontrollfluß eines GUI-Programms wird nie explizit spezifiziert, sondern ergibt sich aus den Aktionen des Benutzers Die Views reagieren auf Ereignisse im Screenbuffer, die von der Ablaufsteuerung gemeldet werden Der Controller auf Widget-Veränderungen im View Die Views auf Veränderungen im Modell Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 67 The End Diese Folien sind eine überarbeitete Version der Vorlesungsfolien zur Vorlesung Softwaretechnologie von Prof. H. Hussmann, used by permission. Verbreitung, Kopieren nur mit Zustimmung des Autors. Prof. Uwe Aßmann, Prof. Heinrich Hussmann, Softwaretechnologie 68

7. Architektur interaktiver Systeme

7. Architektur interaktiver Systeme 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen 7. Architektur interaktiver Systeme 7.2 Ereignisgesteuerter Programmablauf

Mehr

7. Architektur interaktiver Systeme

7. Architektur interaktiver Systeme 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen (Fortsetzung) Layout-Manager Definition Ein Layout-Manager ist ein Objekt,

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

Seite Architektur interaktiver Systeme. 7. Architektur interaktiver Systeme. 7.1 Entkopplung durch Sichten. Schichtenarchitektur

Seite Architektur interaktiver Systeme. 7. Architektur interaktiver Systeme. 7.1 Entkopplung durch Sichten. Schichtenarchitektur 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 'The

Mehr

2. Programmierung von Benutzungsschnittstellen

2. Programmierung von Benutzungsschnittstellen 2. Programmierung von Benutzungsschnittstellen 2.1 Modell-Sicht-Paradigma 2.2 Bausteine für grafische Oberflächen 2.3 Ereignisgesteuerte Programme 1 Benutzungsoberflächen Technische Realisierungen: Stapelverarbeitungssprache

Mehr

Medientechnik. Heinrich Hußmann Ludwig-Maximilians-Universität München Sommersemester Prof. Hußmann: Medientechnik. LMU München Sommer 2009

Medientechnik. Heinrich Hußmann Ludwig-Maximilians-Universität München Sommersemester Prof. Hußmann: Medientechnik. LMU München Sommer 2009 Medientechnik Heinrich Hußmann Ludwig-Maximilians-Universität München Sommersemester 2009 Kap. 1 Folie 1 Lehr- und Forschungseinheit Medieninformatik Prof. Dr. Heinrich Hußmann Amalienstr. 17, 5. OG, Raum

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

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.

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

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

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

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

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke GUIs mit Swing Markus Reschke 28.08.2014 Beispiel: Ein einfaches GUI-Programm Siehe Painter.java Markus Reschke GUIs mit Swing 2 GUI Frameworks in Java AWT war das erste GUI-Framework, welches mit Java

Mehr

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

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,

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

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

GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik GUI-Programmierung mit Java Teil I Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI GUI-Programmierung V3.0 2011 by WBR1&MOU2/BFH-TI Lernziele Die Kursteilnehmer sind in

Mehr

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

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,

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

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek 1 Ereignis-orientierte Programmierung Prinzipien Programm besteht aus einer Reihe von Dämonen (=Listener) Dämon (=Listener)

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

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Aufgabe Ein Benutzer soll zwei Zahlen in ein Programm

Mehr

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

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract

Mehr

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

Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: graphical user interface, GUI) in Java GUI-Programmierung in Java GUI-Programmierung in Java 2002 Prof. Dr. Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen

Mehr

NTB Druckdatum: 01.04.13 -

NTB Druckdatum: 01.04.13 - AWT UND SWING AWT = abstract windowing toolkit Bausteine Eigenes Fenster Programmcode steht nicht im Main, sondern in einer separaten Klasse extends JFrame JWindow selbstständiges Fenster, ohne Rahmen

Mehr

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15.  Institut für Angewandte Informatik Programmieren II Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Events in Java Graphische Anwendungen werden über Events gesteuert.

Mehr

Sommersemester Implementierung III: GUI und Verhalten (Teil 2)

Sommersemester Implementierung III: GUI und Verhalten (Teil 2) Sommersemester 2003 Implementierung III: GUI und Verhalten (Teil 2) 26 Aufgabe 5 Implementierung III: GUI und Verhalten (Teil 2) Umfang: 1 Woche Punkte: 50 P. Als Nächstes soll die Implementierung des

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

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 07. Java: GUI und Ereignisbehandlung Teil

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

Heute. Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files IT I - VO 11 1

Heute. Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files IT I - VO 11 1 Heute Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files 17.01.2017 IT I - VO 11 1 Organisatorisches Noch zwei UE und eine Wissensüberprüfung Heute

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 5. Grafische Userinterfaces Christian Scheible Institut für Maschinelle Sprachverarbeitung 31. Juli 2009 Christian Scheible Java für Computerlinguisten 31. Juli 2009 1 / 33

Mehr

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15.  Institut für Angewandte Informatik Programmieren II Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Event-Modelle in Java Graphische Anwendungen werden über Events

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 11 Prof. R. Westermann, R. Fraedrich,

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

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

Seite 1. Kapitel 7: GUI-Rahmenwerk: AWT & Swing. Entwicklungstufen von Benutzerschnittstellen

Seite 1. Kapitel 7: GUI-Rahmenwerk: AWT & Swing. Entwicklungstufen von Benutzerschnittstellen Entwicklungstufen von Benutzerschnittstellen Kapitel 7: GUI-Rahmenwerk: AWT & Swing 7.1 Aufbau & Funktionsweise 7.2 Beispiel Counter im Detail 7.3 Grafikprogrammierung an Beispielen 'Thenightisfine', thewalrussaid,

Mehr

Java GUI Entwicklung mit Swing

Java GUI Entwicklung mit Swing Seminarunterlage Version: 5.03 Version 5.03 vom 13. Februar 2014 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt GUI GUI = Graphical User Interface Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt Gute Übersicht über alle Funktionalitäten

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

J.1. J.1 GUI-Programmierung in in Java. 2002 Prof. Dr. Rainer Manthey Informatik II 1

J.1. J.1 GUI-Programmierung in in Java. 2002 Prof. Dr. Rainer Manthey Informatik II 1 GUI-Programmierung in Java GUI-Programmierung in in Java 2002 Prof Dr Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: : Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe

Mehr

Was passiert, wenn Button "Ok?" mit Maus angeklickt?

Was passiert, wenn Button Ok? mit Maus angeklickt? Ein Beispiel-Frame Was passiert, wenn Button "Ok?" mit Maus angeklickt? gar nichts!!! FH AACHEN UNIVERSITY OF APPLIED SCIENCES OOS Prof. Dr. H. Faßbender Ereignisverarbeitung 27. April 2016 1 Implementierung

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

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

Hauptklausur: PRGII MD

Hauptklausur: PRGII MD Hauptklausur: PRGII MD Aufgabe 1 (18 Punkte) Betrachten Sie folgenden binären Suchbaum. a) Geben Sie die Knoten des Baumes in postorder aus. anne, helmut, harald, bert, arno, manuel, uwe, thorsten, sebastian,

Mehr

JAVA Oberflächen mit Swing

JAVA Oberflächen mit Swing JAVA Oberflächen mit Swing Grafik von http://javafx.com 159 AGENDA Grundlagen GUI Swing JavaFX 160 GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten

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

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

...erinnern Sie sich? oopjs4b / kwhbkd4r

...erinnern Sie sich? oopjs4b / kwhbkd4r ...erinnern Sie sich? oopjs4b / kwhbkd4r !" Ereignisbehandlung in awt/swing führt Liste interessierter Behandler GUI- Komponente (z.b. Knopf) wird eingetragen trägt ein Ereigniskanal fertigt ab neuer Behandler

Mehr

Kapitel 7: Ereignis-basierte Kommunikation

Kapitel 7: Ereignis-basierte Kommunikation Liste P: Programmieren mit Java WS 2001/2002, Prof. Dr. V. Turau, FH Wiesbaden Kapitel 7: Ereignis-basierte Kommunikation Folie 125 : Grafische Oberflächen Eine grafische Oberfläche besteht aus Komponenten.

Mehr

Ereignisse (Events) in Java

Ereignisse (Events) in Java Ereignisse (Events) in Java werden durch Aktionen an GUI-Komponenten ausgelöst Quelle: GUI-Komponente, die ein Ereignis als Instanz einer Event-Klasse erzeugt Beispiel: ein Button, der angeklickt wird

Mehr

(C) Sortieren und Suchen mit Java.-AWT Seite 1

(C)  Sortieren und Suchen mit Java.-AWT Seite 1 Sortieren sowie Suchen mit dem Halbierungsverfahren, programmiert mit der Java-AWT Funktion und Oberfläche sind in getrennten Klassen untergebracht. Die ganze Anwendung besteht damit aus drei Dateien:

Mehr

JAVA Oberflächen mit Swing

JAVA Oberflächen mit Swing JAVA Oberflächen mit Swing Grafik von http://javafx.com 168 168 AGENDA Grundlagen GUI Swing JavaFX 169 169 GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten

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

Eingabe von Texten. Vorlesung Software-Entwicklung / Folie 101

Eingabe von Texten. Vorlesung Software-Entwicklung / Folie 101 Eingabe von Texten SWE-101 Komponente TextField: einzeiliger, edierbarer Text Ereignisse: ActionEvent (wie bei Button) ausgelöst bei der Eingabe von Return einige Methoden (aus der Oberklasse TextComponent):

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 5

Betreutes Programmieren Vorlesung Informatik II, Blatt 5 SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 01.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 5 Programmieraufwand für geübte Programmierer:

Mehr

GUI Programmierung mit javax.swing

GUI Programmierung mit javax.swing java.awt Swing Komponenten Layout Manager Ausblick GUI Programmierung mit University basierend auf Folien von Dr. Beatrice Amrhein (Bern), 19. Juni 2006 java.awt Swing Komponenten Layout Manager Ausblick

Mehr

Eventhandling. Delegation model Eventhandler model

Eventhandling. Delegation model Eventhandler model Eventhandling Dient der Kommunikation der Controlls mit der eigentlichen Anwendung. Prinzipiell gibt es zwei verschiedene Verfahren für das Eventhandling Delegation model Eventhandler model Die Arbeit

Mehr

Graphische Oberflächen und das Java AWT

Graphische Oberflächen und das Java AWT Graphische Oberflächen und das Java AWT Eine Einführung in das Abstract Window Toolkit Prof. Dr. Nikolaus Wulff Agenda Die (wichtigsten) AWT Klassen Das Model-View-Controller Konzept Die Ereignisverarbeitung

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

GUI-Programmierung in Java

GUI-Programmierung in Java GUI-Programmierung in Java Jan Pihl, Daniel Bugdalle 1. Einleitung Betreuer: Thomas Ströder Die Bedienung von Software stellt sich oft als etwas schwierig für viele Nutzer heraus, wenn es keine grafische

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Graphische Benutzerschnittstellen I GUI erzeugen Seite 1 GUI GUI: Graphical User Interface Graphische Benutzeroberfläche Seite 2

Mehr

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets Kapitel 3: Java Applets 1 Was sind Applets? kleine in Fenstern ausführbare Programme typisch: Aufruf im Browserfenster als Teil einer HTML-Seite Anfang des umgebenden HTML-Textes

Mehr

Benutzeroberflächen. Abstract Windowing Toolkit, Rahmen, Wächter, Ereignisbehandlung, Ausgabe, Menüs.

Benutzeroberflächen. Abstract Windowing Toolkit, Rahmen, Wächter, Ereignisbehandlung, Ausgabe, Menüs. Benutzeroberflächen Abstract Windowing Toolkit, Rahmen, Wächter, Ereignisbehandlung, graphische Ausgabe, Menüs. Der Abstract Windowing Toolkit (awt) Jedes moderne Betriebssystem stellt bereit Fenster Menüs

Mehr

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

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

Mehr

Vorlesung 13. Sitzung Grundlegende Programmiertechniken

Vorlesung 13. Sitzung Grundlegende Programmiertechniken Vorlesung 13. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 GUI-Entwicklung mit

Mehr

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

Swing : Komponeneten I (Teil 1) Was ist Swing? Was ist Swing? 1 Unterschied zu AWT (Abstract window Toolkit) Zusätzliche Komponenten von Swing,die zu Oberflächenerzeugung genutzt werden können: Keyboard Accelerators, also Tastenkombination zur Steuerung

Mehr

Medientechnik. Übung 2 Java Swing

Medientechnik. Übung 2 Java Swing Medientechnik Übung 2 Java Swing Planung Nr Zeitraum Thema 1 20.04. 25.04. Bildretusche mit Gimp 2 27.04. 01.05. GUI Programmierung 3 04.05. 08.05. Model-View Controller 4 18.05. 22.05. Bildfilter 5 26.05.

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

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 15 Einstieg in die Informatik mit Java Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Ereignis-Verwaltung 2 Layout-Typen GridLayout

Mehr

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2009 1 / 30 2 / 30 JButton, JCheckBox, JRadioButton In Swing existieren drei wesentliche Klassen für Schaltflächen: JButton für normale

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren GUIs mit Java Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Bisher... 2 Apple Lisa Office System 3.1 3 Graphical

Mehr

Vorlesung Programmieren. Bisher... Apple Lisa Office System 3.1. GUIs mit Java

Vorlesung Programmieren. Bisher... Apple Lisa Office System 3.1. GUIs mit Java Vorlesung Programmieren GUIs mit Java Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Bisher... 2 Apple Lisa Office System 3.1 3 Graphical

Mehr

$ java awt.main A # typische Dekodierung $ java -Dtrace=all awt.main A # alle Events $ java -Dtrace=none awt.main A # keine Dekodierung

$ java awt.main A # typische Dekodierung $ java -Dtrace=all awt.main A # alle Events $ java -Dtrace=none awt.main A # keine Dekodierung 111 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Button [ Applet] Beispiel A dient zum Experimentieren mit Button- und Panel-Objekten. Button stammt von Component ab, stellt einen String

Mehr

import java.awt.*; import java.awt.event.*; import javax.swing.*;

import java.awt.*; import java.awt.event.*; import javax.swing.*; Swing Workshop Dieser Workshop enthält grundsätzliche Informationen über Swing und Java und regt mit einigen Beispielen und Übungen zum weiteren Erkunden dieses Themengebietes an. Kapitel 1: Das erste

Mehr

GUI-Programmierung mit Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 11: GUI 1: AWT (1) GUI-Programmierung mit Java.

GUI-Programmierung mit Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 11: GUI 1: AWT (1) GUI-Programmierung mit Java. Universität Osnabrück 1 GUI-Programmierung mit Java 3 - Objektorientierte Programmierung in Java Vorlesung 11: GUI 1: AWT (1) SS 2004 Prof. Dr. F.M. Thiesing, FH Dortmund Alle unsere bisherigen Anwendungsbeispiele

Mehr

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Exkurs: ANONYME KLASSEN. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Exkurs: ANONYME KLASSEN Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Anonyme Klassen Eigenschaften 1 Häufigste Anwendung lokaler Klassen: anonyme Definition. Klasse erhält keinen eigenen

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

Geschrieben von: Sonntag, den 18. September 2005 um 20:01 Uhr - Aktualisiert Donnerstag, den 01. Oktober 2009 um 23:39 Uhr

Geschrieben von: Sonntag, den 18. September 2005 um 20:01 Uhr - Aktualisiert Donnerstag, den 01. Oktober 2009 um 23:39 Uhr Einführung Einfache Applikationen zu denen auch dieser Java Taschenrechner gehört, lassen sich heut zu Tage relativ bequem und schnell programmieren. Die entsprechenden API's (Application Progr amming

Mehr

Swing :Komponenten I (Teil 2)

Swing :Komponenten I (Teil 2) l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen l Swing stellt eine Menge von Klassen zur Verfügung l Swing wurde

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 2 Selbststudium Semesterwoche 4

Programmieren 2 Selbststudium Semesterwoche 4 Programmieren 2 Selbststudium Semesterwoche 4 Kapitel 11.1, 11.2 und 11.3 1. Das Konzept "Interface" ist wichtig und ist uns schon mehrfach begegnet. In welchen Zusammenhängen hatten wir es schon mit "Interfaces"

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

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

Model-View-Controller. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

Model-View-Controller. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Model-View-Controller Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Model View Controller (MVC) Architekturmuster für die Gestaltung von interaktiven Oberflächen 3 Komponenten Model: Datenmodell

Mehr

Auszug aus der Klassenstruktur

Auszug aus der Klassenstruktur Swing javax.swing Auszug aus der Klassenstruktur JComponent AbstractButton JColorChooser JComboBox JInternalFrame JLabel JList JPanel JTable JTextComponent JTree JToolBar JToolTip JToggleButton JButton

Mehr

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Mittwoch Inhaltsübersicht Eigene Klassen definieren Vererbung Abstrakte Klassen Schnittstellen Polymorphismus Designbeispiele: Java-AWT Strings in Java Funktionen und Funktionsplotter

Mehr

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse

Mehr

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor(); Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,

Mehr

GUIs in Java und ihre Programmierung

GUIs in Java und ihre Programmierung GUIs in Java und ihre Programmierung Einführung GUI = Graphical User Interface graphische Benutzerschnittstelle Java Tutorial java.sun.com/docs/books/tutorial/index.html Java Documentation (in Version

Mehr

Layout Manager. Astrid Beck FHT Esslingen

Layout Manager. Astrid Beck FHT Esslingen Layout Manager Astrid Beck FHT Esslingen Layout Manager Layout Manager arrangieren den Inhalt eines Containers gemäß vorgegebener Regeln Layout Manager BorderLayout North, South, East, West, Center FlowLayout

Mehr

Grafikprogrammierung mit Java Teil 1/2

Grafikprogrammierung mit Java Teil 1/2 Grafikprogrammierung mit Java Teil 1/2 Martin Tischmann 15. Juni 2009 Inhaltsverzeichnis Das Abstract Windowing Toolkit Anlegen eines Fensters Die Methode paint Das grafische Koordinatensystem Schließen

Mehr

Aufbau einer typischen Java-Datei

Aufbau einer typischen Java-Datei Aufbau einer typischen Java-Datei 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [package mein.paket;] [import

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

6. Objektorientiertes Design

6. Objektorientiertes Design 6. Objektorientiertes Design 6.1 Entwurfsmuster 6.2 Zusammenfassendes Beispiel 6.3 Umsetzung des Model-View-Controller- Musters in Java 6. Objektorientiertes Design 6-1 Grundlage des objektorientierten

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte und Funktionale Programmierung SS 2014 Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

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