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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 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, 'Do you admire the view?' Lewis Carroll Stapelverarbeitungssprache (batch control, job control) Zeilenorientierte Kommandosprache (Dialoge) z.b. Kommandosprachen von MS-DOS, UNIX Skriptsprachen-Interpreter: Shells Bildschirm- und Masken-orientierter Dialog z.b. Dialogoberfläche von MVS, VM/CMS Graphische Benutzungsoberfläche (Graphical User Interface) Multimedia-Benutzungsoberfläche Virtuelle Welt,... Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-1 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-2 GUIs: Meilensteine der Entwicklung 1973: XEROX Alto Maus & Bitmap 1984: Apple Macintosh 1980: Smalltalk-80-Oberfläche (Xerox-Star) 1983/84: Lisa/Macintosh-Oberfläche (Apple) 1985+: X-Windows / Motif (OSF) 1988: NextStep (Next) 1989?: OpenLook (Sun) 1987/91: OS/2 Presentation Manager (IBM) 1990: Windows 3.0 (Microsoft) 1995+: Windows 95/NT/XT (Microsoft) 1995+: AWT und Swing (SunSoft) und Linux CDE : X-Windows MIT 1981: XEROX Star echte Fenster 1988: NextStep Display- Postscript AWT teils schon legacy Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-3 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-4 Java Abstract Window Toolkit & Swing AWT: Grafik, Oberflächenkomponenten ( heavyweight ), Layout-Manager, Ereignisbehandlung Swing: AWT-Ergänzung, leistungsstarke Komponenten ( lightweight ) AWT: Look and Feel an Plattform angepasst Windows Solaris Swing: Look and Feel von Plattform unabhängig GUIs erfüllen ergonomische Anforderungen flexibel & aufgabenangemessen den Menschen unterstützen Entspanntes Arbeiten Kontrolle beim Benutzer statt beim Programm Gedächtnis entlasten: Browsing statt Kommandos Fehlertoleranz: Undo-Operationen Menschengerechte Darstellung von Systemzustand: direkt manipulierbar Datenmengen: Ausschnitte in Fenstern, navigierbar Verzahnte Abläufe unterstützt Daten quasiparallel in verschiedenen Werkzeugen Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-5 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-6 Seite 1

2 7.1 Aufbau & Funktionsweise Ergonomische Anforderungen umsetzen: Kontrolle beim Benutzer => Call-Backs (OS und Java!), aktiviert auf Ereignisse hin. Einheitliches Look & Feel Menschengerechte Darstellung => Fenster aus Standard-Komponenten, zusammengebaut nach Layout-Strategien, direkt manipulierbar durch Benutzer. Verzahnte Abläufe => möglich durch Tasking (siehe Kap. 6), unterstützt durch MVC-Architektur(-Muster). Oberflächenbausteine in Java - 1 Component (abstrakt): Oberklasse (fast!) aller Bestandteile der Oberfläche public void setsize (int width, int height); public void setvisible (boolean b); u.a. Basis des Event-Handlings Container (abstrakt): Oberklasse der Komponenten, die andere Komponenten enthalten public void add (Component comp); public void setlayout (LayoutManager mgr); u.a. Basis der Layout-Gestaltung Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-7 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-8 Oberflächenbausteine in Java - 2 JPanel (konkret): Standard-Container für Layout rahmenlose Zeichenfläche Oberklasse von Applet Window (abstrakt): Gemeinsamkeiten von Frame und Dialog public void pack(); JFrame (konkret): echtes Anwendungs-Fenster mit Titel Dialog (abstrakt): Oberklasse von modalen Eingabe-Fenstern z.b. MessageDialog, InputDialog Oberflächenbausteine in Java - 3 JTextComponent: Oberklasse von TextField und TextArea public void settext(string t); public String gettext(); public void seteditable(boolean b); JTextField: Textfeld mit einer Zeile JLabel: Einzeiliger unveränderbarer Text JButton: Druckknopf mit Textbeschriftung Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-9 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-10 AWT-Klassenhierarchie (Ausschnitt) MenuComponent MenuBar MenuItem Menu PopupMenu Swing-Komponenten mit einem J davor Object Text Component TextField Component Label Panel Bekanntes Muster!! Dialog Button Window FileDialog * Frame Container ScrollPane Layout-Festlegung Layout-Manager-Objekte ordnen Container-Inhalt an FlowLayout (links-/rechtsbündig/zentriert, Abstände) GridLayout (Zeilen[0=*], Spalten, Abstände) BorderLayout (Platzierungen: North, West,..., Center) GridBagLayout (für gehobene Ansprüche) leer / selbstdefinierter LayoutManager Beispiel für Entwurfsmuster Strategy Kapselung der Strategie in einem Manager-Objekt ähnlich verwendbar bei Spiel-Strategien ähnlich auch bei Durchlauf-Strategien für Graphen Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-11 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-12 Seite 2

3 Am Beispiel: Layout-Strategien für 5 Buttons JButton button1 = new JButton("einfach"); JButton button2 = new JButton("eine"); JButton button3 = new JButton("Reihe"); JButton button4 = new JButton("von"); JButton button5 = new JButton("JButtons"); Wirkung der Layout-Strategien FlowLayout(FlowLayout.LEFT,10,30) 30 panel.setlayout( new FlowLayout(FlowLayout.LEFT,10,30)); panel.setlayout( Eins von beiden! new GridLayout(0,2,10,30)); panel.add(button1); panel.add(button2); panel.add(button3); panel.add(button4); panel.add(button5); GridLayout(0,2,10,30)) Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-13 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-14 Layout-Festlegung absolut Es geht auch ohne Layout-Manager: JButton b = new JButton("fest"); JPanel p = (JPanel)getContentPane(); p.setlayout(null); p.add(b); b.reshape(100,50,60,10); // Einzüge links und oben, Breite, Höhe Vorgehen nicht erstrebenswert, weil Probleme bei größenverändernden Fensteroperationen, z.b. Knopf verschwindet in nicht sichtbarem Bereich Verschiedene OS-Fenstersysteme verschiedene Proportionen realisieren => Portierungsprobleme Ereignisse Definition: Ein Ereignis ist ein Vorgang in der Umwelt des Softwaresystems von vernachlässigbarer Dauer, der für das System von Bedeutung ist, z.b. eine Benutzerinteraktion. Beispiele für Benutzerinteraktions-Ereignisse: Drücken eines Knopfs, einer Taste, Mausklick Auswahl eines Menüpunkts Verändern von Text Zeigen auf ein Gebiet Öffnen, Schließen oder Verschieben eines Fensters Andere Ereignisse sind z.b. Signale von Timern oder von anderen Programmen Objekte, die Ereignisse beobachten, heißen Listener. Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-15 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-16 Behandlung von Ereignissen Benutzereingabe (Tastendruck, Mausklick) Tastatur- bzw. Maustreiber gibt Daten (Scancode, Position, Zeit) an OS Fenstersystem des OS gibt Daten an angesprochenes Fenster Fenster mit Java-Programm ermittelt (über Layout) die Komponente Controller Java gibt Daten an den zur Komponente gehörigen Listener weiter Der vom Programmierer entwickelte Callback-Code ändert Modell View Modelländerung zieht evtl. Änderung des Fensterinhalts nach sich Ereignis-Klassen Klassen der Benutzeroberfläche: Window / Frame Panel Button TextField,... entsprechende Ereignisklassen: WindowEvent MouseEvent ActionEvent KeyEvent,... Zuordnung (Beispiele): Window (Frame) erzeugt WindowEvent» z.b. bei Betätigung des Schließknopfes Button erzeugt ActionEvent Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-17 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-18 Seite 3

4 Beispiel Fenster schließen public interface WindowListener extends EventListener { public void WindowClosed (WindowEvent ev); public void WindowOpened (WindowEvent ev); public void WindowIconified (WindowEvent ev);... public void WindowClosing (WindowEvent ev); Andere Beispiele für Adapter-Muster vgl Kap 4, S. 25 ff public class WindowAdapter implements WindowListener { public void WindowClosed (WindowEvent ev) { public void WindowOpened (WindowEvent ev) { public void WindowIconified (WindowEvent ev) {... public void WindowClosing (WindowEvent ev) {... implementiert alle Aktionen formal durch Nichtstun Schließbares Fenster in Java 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("example"); setsize(150,50); addwindowlistener(new WindowCloser()); setvisible(true); public static void main (String[] argv) { ExampleFrame f = new ExampleFrame(); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-19 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-20 Schließbares Fenster: Klassenstruktur Die Model-View-Controller-Architektur <<interface>> WindowListener windowclosing (e: WindowEvent) WindowCloser WindowEvent WindowAdapter <<use>> registriert bei Window addwindowlistener (l: WindowListener) Frame setsize settitle setvisible ExampleFrame Graphische Oberflächen erlauben, dass dieselbe Information in mehreren (verschiedenen oder gleichartigen) Fenstern gleichzeitig angezeigt wird oder mehrfach in einem Fenster auf verschiedene Weisen (z.b. Explorer mit Dateibaum und Dateiliste). Dabei ist ein zeitlich verzahntes, quasi-paralleles Arbeiten auf derselben Information möglich. Die verschiedenen Fenster müssen irgendwie synchronisiert und die Information konsistent gehalten werden. Fenster können dynamisch hinzukommen oder entfallen. Die Model-View-Controller-Architektur wurde entwickelt, um mit solchen Situationen systematisch umzugehen: Das Modell (Model) repräsentiert Programmzustand und -daten. Die Sicht (View) ist die Darstellung der Information auf dem Bildschirm. Die ereignisorientierte Steuerung (Controller) ist für die Verarbeitung der Benutzereingaben zuständig. Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-21 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-22 Modell und Sicht Das Beobachter - Muster (auch Publisher/Subscriber ) Ereignisse bewirken Änderungen Modell Sicht Benachrichtigung über Änderungen Sicht Beispiel: Dokumentenansicht, Statusanzeige,... Frage: Wie hält man das Modell unabhängig von den einzelnen Sichten darauf? A-Beobachter update * beobachtet A for all observers o do: o.update() <<interface>> Observer update Observable addobserver deleteobserver setchanged notifyobservers Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-23 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-24 Seite 4

5 java.util.observable, java.util.observer public class Observable { public void addobserver(observer o); public void deleteobserver(observer o); protected void setchanged(); public void notifyobservers(); public void notifyobservers(object arg); public interface Observer { public void update (Observable o, Object arg); Beispielablauf (Sequenzdiagramm) a: A b1: A-Beobachter b2: A-Beobachter addobserver(b1) addobserver(b2) setchanged() notifyobservers(arg) update(arg) update(arg) Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-25 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-26 Zum Beobachter-Muster Beobachtete Klassen definieren, welche Veränderungen beobachtbar sind, d.h. aktiv den Beobachtern mitgeteilt werden und wann die Mitteilung erfolgen soll. Beobachtete Klassen haben keine Information darüber, was die Beobachter konkret tun; sie müssen nicht geändert werden, wenn sich Beobachter verändern, wenn neue Beobachter dazukommen oder Beobachter wegfallen. Die Argumente für notify() beschreiben»meist nur Art der Änderung, nicht gesamte Zustandsinformation» Beobachter können normale Methodenaufrufe nutzen, um sich näher zu informieren. 7.2 Beispiel Counter im Detail Dear System Builder, I love to count. Build me a system to help me with that counting.... I love to count lots of things. Regards, The Count Peter Coad & Jill Nicola Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-27 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-28 Das Counter-Beispiel Counter-Steuerung über Menü Ein paar Details nur im kompletten Programm! Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-29 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-30 Seite 5

6 Counter-Steuerung über Knöpfe Model-View-Controller-Architektur View Controller bc: ButtonController cf: CounterFrame <<beobachtet>> <<ändert>> Model c: Counter 4711 Counter value increment setvalue Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-31 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-32 Counter: das fachliche Modell class Counter { private int value = 0; public int getvalue() { return value; public void setvalue(int v) { value = v; public void reset() { setvalue(0); public void increment() { setvalue(getvalue()+1); public void decrement() { setvalue(getvalue()-1); Beobachtbares Modell (Model) class Counter extends Observable { private int value = 0; public int getvalue() { return value; public void setvalue(int v) { value = v; setchanged(); notifyobservers(); Von Observable ererbte Methoden! public void reset() { setvalue(0); public void increment() { setvalue(getvalue()+1); public void decrement() { setvalue(getvalue()-1); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-33 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-34 CounterFrame: kombiniert View & Controller Komponenten vereinbaren Paneele, Knöpfe, Menü, Wertanzeige mit Beschriftung View erzeugen im Konstruktor von CounterFrame JPanel, JButtons,... Panele mit LayoutManagern ausstatten Komponenten in Panele bzw. Menü einfügen Controller für Komponenten Aktionen für Knöpfe und Menü-Punkte Anbindung ans Modell muss also ein Observer sein (update-methode) Counter: Struktur der Oberfläche Fensterrahmen (OS-spezifisch) mit Titel & Knöpfen change valuelabel valuedisplay incbutton resetbutton decbutton panel menubar diplaypanel buttonpanel Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-35 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-36 Seite 6

7 Counter: die Komponenten anlegen panel = (JPanel)getContentPane(); buttonpanel = new JPanel(); incbutton = new JButton("Increment"); resetbutton = new JButton("Set to Zero"); decbutton = new JButton("Decrement"); displaypanel = new JPanel(); valuelabel = new JLabel("Current Value: "); valuedisplay = new JTextField("0",8); menubar = new JMenuBar(); change = new JMenu("Change"); negative = new JMenuItem("times (-1)"); tovalue = new JMenuItem("to..."); tomax = new JMenuItem("to Max"); Counter: Container und LayoutManager panel.setlayout(new BorderLayout()); buttonpanel.setlayout(new FlowLayout()); buttonpanel.add(incbutton); buttonpanel.add(resetbutton); buttonpanel.add(decbutton); panel.add(buttonpanel,"south"); displaypanel.add(valuelabel); valuedisplay.sethorizontalalignment(4); valuedisplay.seteditable(false); displaypanel.add(valuedisplay); panel.add(displaypanel,"center"); change.add(negative); change.add(tovalue); change.add(tomax); menubar.add(change); setjmenubar(menubar); FlowLayout ist Default! rechtsbündig Norden, Osten und Westen bleiben leer Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-37 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-38 Counter: Aktionen für Knöpfe incbutton.addactionlistener(new ActionListener() { mycounter.increment(); ); Anonyme innere Klassen resetbutton.addactionlistener(new ActionListener() { mycounter.setvalue(0);... mit redefinierten Methoden ); decbutton.addactionlistener(new ActionListener() { mycounter.decrement(); ); Counter: Aktionen für Menüpunkte tovalue.addactionlistener(new ActionListener() { String num = JOptionPane.showInputDialog("new value is?"); mycounter.setvalue(integer.parseint(num)); ); negative.addactionlistener(new ActionListener() { mycounter.setvalue(0-mycounter.getvalue()); ); tomax.addactionlistener(new ActionListener() { mycounter.setvalue( ); ); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-39 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-40 Counter: Anbindung ans Modell // die Modellanbindung im Konstruktor final Counter mycounter = c; c.addobserver(this); final, damit in inneren Klassen ansprechbar // dazu eine Observer-spezifische Methode public void update(observable o, Object a){ valuedisplay.settext( String.valueOf(((Counter)o).getValue()) ); wenn sich das Model ändert 7.3 Grafikprogrammierung an Beispielen Jedes Paneel bringt seinen Zeichenstift mit, den man sich wie folgt beschaffen kann: Graphics g = drawpane.getgraphics() (); Elementare Zeichenoperationen: g.setcolor(color.blue); //.black. oder... g.drawline(fromx,fromy,tox,toy); g.drawarc(...); // Bezier g.setfont(...); g.drawstring("hallo"); "); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-41 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-42 Seite 7

8 Komplexere Grafikoperationen Mehr siehe Graphics2D g.drawoval(topleftx,toplefty,width,height); g.filloval(topleftx,toplefty,width,height); g.drawrect(topleftx,toplefty,width,height); g.fillrect(topleftx,toplefty,width,height); Beispiel Scribble Eine minimale Grafik-Anwendung, das Scribble -Zeichenprogramm: topleft height width g.drawpolygon(xkoords,ykoords,size); g.fillpolygon(xkoords,ykoords,size); Zwei Arrays der Länge Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-43 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-44 Scribble : die Komponenten anlegen // Komponenten als Attribute vereinbaren: private int lastx, lasty; // letzte Maus-Koordinaten JPanel panel; JButton erasebutton; im Konstruktor // Komponenten anlegen und platzieren: panel = (JPanel)getContentPane(); panel.setlayout(new BorderLayout()); erasebutton = new JButton("Erase"); panel.add(erasebutton,"south"); final JPanel drawpane = new JPanel(); panel.add(drawpane,"center"); Scribble : Aktionen für Fenster und Knopf // Fenster schließbar addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { dispose(); System.exit(0); ); // Scribble-Operation Erase erasebutton.addactionlistener(new ActionListener() { Graphics g = drawpane.getgraphics() (); g.setcolor(drawpane.getbackground drawpane.getbackground()); g.fillrect(0,0,getsize().width, ); getsize().height); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-45 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-46 Scribble : Aktionen für Mausbewegungen // Scribble-Maus-Operationen drawpane.addmouselistener(new MouseAdapter() { public void mousepressed (MouseEvent e) { lastx = e.getx(); lasty = e.gety(); ); drawpane.addmousemotionlistener (new MouseMotionAdapter() { public void mousedragged (MouseEvent e) { int x = e.getx(); int y = e.gety(); Graphics g = drawpane.getgraphics(); g.drawline(lastx,lasty,x,y); ); lastx = x; lasty = y; Beobachtung bei Scribble Bei Fensterbewegungen, -größenveränderung etc verschwindet das gezeichnete Bild?! Zusammenspiel der Zeichenmethoden im Grafikframework: update() nach Fensterbewegungen etc automatisch paint() die eigentliche Zeichenmethode => redefinieren! repaint() Anstossen des Zeichenvorgangs vom Progamm aus Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-47 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-48 Seite 8

9 Technik des Double Buffering class... extends JPanel { flickerfreie Animation public void paint (Graphics g) { if (im == null) { im = createimage(width,height); gr = im.getgraphics(); // mit gr auf im zeichnen g.drawimage(im,0,0,width,height,this); public void refresh ( ) { im = null; Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-49 Beispiel Dashboard Eine komplexere Grafik-Anwendung ist das Dashboard - Simulationsprogramm: Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-50 Beispiel Dashboard zeigt viel: Simulation lose gekoppelte Geräte => Observer & Observable Zeittakt-gesteuert => Timer-Thread Gerätehierarchie Dial (rpm, mph) Gauge (Fuel, Temp, Oil) => Double Buffering Pedal (Accelerator, Brake) Benutzersteuerbare Geräte Gas, Bremse, Schaltung Knöpfe zum Tanken => Controlle / Listener Layout Fenster insgesamt im Border-Layout 3 x 3 Grid im Center-Bereich des Fensters darunter (South) die Knöpfe in zentriertem Flow-Layout Dashboard : Struktur des Center-Panels Gridlayout 3 x 3 : Fensterrahmen (OS-spezifisch) mit Titel & Knöpfen FuelView SpeedView TempView OilView TurnView Acc.-View GearView BrakeView Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-51 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-52 Dashboard : Klassendiagramm Dashboard : View- und Controller-Klassen Panel GaugeView DialView PedalView ItemListener MouseListener MouseAdaptor als innere Klassen in Dashboard!! GearView FuelView OilView TempView TurnView SpeedView Acc.-View BrakeView Gear- Item- Listener Brake- Mouse- Listener Acc.- Mouse- Listener dependants Observer GearView BrakeView Acc.-View Dashboard CarModel Timer Dashboard Observable Thread Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-53 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-54 Seite 9

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

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

1. Konventionelle Ein-/Ausgabebetonte Programmierung

1. Konventionelle Ein-/Ausgabebetonte Programmierung 1. Konventionelle Ein-/Ausgabebetonte Programmierung 1.1 Realisierung grafischer Benutzungsoberflächen Beispiel Java AWT und Swing 1.2 Grundlagen der 2D-Computergrafik Beispiel Java-Grafikprogrammierung,

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

B1. Ein-/Ausgabebetonte Programmierung

B1. Ein-/Ausgabebetonte Programmierung B1. Ein-/Ausgabebetonte Programmierung B1.1 Mensch-Maschine-Kommunikation B1.2 Modell-Sicht-Paradigma B1.3 Bausteine für grafische Oberflächen B1.4 Ereignisgesteuerte Programme Ludwig-Maximilians-Universität

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 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

B1. Ein-/Ausgabebetonte Programmierung

B1. Ein-/Ausgabebetonte Programmierung B1. Ein-/Ausgabebetonte Programmierung B1.1 Mensch-Maschine-Kommunikation B1.2 Modell-Sicht-Paradigma B1.3 Bausteine für grafische Oberflächen B1.4 Ereignisgesteuerte Programme Ludwig-Maximilians-Universität

Mehr

B1. Ein-/Ausgabebetonte Programmierung

B1. Ein-/Ausgabebetonte Programmierung B1. Ein-/Ausgabebetonte Programmierung B1.1 Mensch-Maschine-Kommunikation B1.2 Modell-Sicht-Paradigma B1.3 Bausteine für grafische Oberflächen B1.4 Ereignisgesteuerte Programme Ludwig-Maximilians-Universität

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

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 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

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

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

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2)

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2) Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 8: Grafische Benutzerschnittstellen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

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

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

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

Kapitel 8: Grafische Benutzerschnittstellen

Kapitel 8: Grafische Benutzerschnittstellen Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 8: Grafische Benutzerschnittstellen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

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 Gliederung 1. Fototechnik und digitale Bildbearbeitung

Mehr

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen Einführung in die Programmierung für NF Grafische Benutzeroberflächen Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorienferte Programmierung kennenlernen.

Mehr

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel 17. 6. 2010 Kapitel 8: Java-Programmierung 8.1 Ereignisbehandlung, Benutzungsschnittstellen 8.2 Graphikprogrammierung 8.1 Ereignisbehandlung

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

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

Beispiel: Eine Choice-Liste...

Beispiel: Eine Choice-Liste... Beispiel: Eine Choice-Liste...! "#%$&! ; = '( ) )+**,-. /*0 1 2 ) 3 #%$+45* 6 7%$& -* 89 #6 #:/*0 #%$ < /0 # 1< ) 1< >?270 #@ < /0 # 1 2 ) )

Mehr

Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22

Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Einführung: Grafische Benutzeroberflächen 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische

Mehr

In Track B generell gute Java-Kenntnisse vorausgesetzt!

In Track B generell gute Java-Kenntnisse vorausgesetzt! Aufbau der Vorlesung Termin Tag Vorlesung, Track A Vorlesung, Track B Übung 18.4 Mi Ein- und Ausgabetechnik Noch keine Übungen 20.4 Fr Swing Teil 1 25.4 Mi Grundlagen Fototechnik Swing Teil 1 27.4 Fr Swing

Mehr

2. Programmierung von Benutzungsschnittstellen. 2.1 Modell-Sicht-Paradigma 2.2 Bausteine für grafische Oberflächen 2.3 Ereignisgesteuerte Programme

2. Programmierung von Benutzungsschnittstellen. 2.1 Modell-Sicht-Paradigma 2.2 Bausteine für grafische Oberflächen 2.3 Ereignisgesteuerte Programme 2. Programmierung von Benutzungsschnittstellen 2.1 Modell-Sicht-Paradigma 2.2 Bausteine für grafische Oberflächen 2.3 Ereignisgesteuerte Programme Kap. 2 (Einschub in Kap. 1) Folie 1 Gliederung 1. Fototechnik

Mehr

Medientechnik. Andreas Butz Ludwig-Maximilians-Universität München Sommersemester Vorlesungskonzept: Heinrich Hußmann

Medientechnik. Andreas Butz Ludwig-Maximilians-Universität München Sommersemester Vorlesungskonzept: Heinrich Hußmann Medientechnik Andreas Butz Ludwig-Maximilians-Universität München Sommersemester 2008 Vorlesungskonzept: Heinrich Hußmann 1 1b. Ein-/Ausgabebetonte Programmierung B1.1Mensch-Maschine-Kommunikation B1.2Modell-Sicht-Paradigma

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

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

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 09 18.12.2013 Inhalt Korrektur Blatt 8 Wiederholung Design Patterns Einführung in GUI s mit Java Swing und AWT Einführung in die Programmierung für NF Übung

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

Tag 9: Grafische Benutzeroberflächen

Tag 9: Grafische Benutzeroberflächen Kapitel 10 Tag 9: Grafische Benutzeroberflächen In Java gibt es zunächst zwei verschiedene Möglichkeiten Klassen für die Grafikausgabe zu verwenden. Eine Möglichkeit ist AWT (=Abstrakt Windows Toolkit)

Mehr

Auswahl aus mehreren Alternativen:

Auswahl aus mehreren Alternativen: 907 908 Texteingabe: TextField zeigt eine Text-Zeile, die vom Benutzer modifiziert werden kann. TextArea zeigt mehrere modifizierbare Text-Zeilen. Auswahl aus mehreren Alternativen: List scrollbare Liste

Mehr

Ereignisverwaltung und Layout-Typen

Ereignisverwaltung und Layout-Typen Ereignisverwaltung und Layout-Typen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 13.06.07 G. Bohlender (IANM UNI Karlsruhe) Ereignisverwaltung

Mehr

Einführung in GUI-Programmierung. javax.swing

Einführung in GUI-Programmierung. javax.swing Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 03: Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in GUI-Programmierung Motivation Grundlagen von Swing Praxis: UI für

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

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

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

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

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

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

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

(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

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

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

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

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

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

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

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

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

Architektur interaktiver Systeme

Architektur interaktiver Systeme Architektur interaktiver Systeme 1) Entkopplung durch Sichten Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU

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

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

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

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Aufgabe Ein Benutzer soll

Mehr

Einführung in GUI-Programmierung. javax.swing

Einführung in GUI-Programmierung. javax.swing Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt

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

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

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

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

Medientechnik. Lehr- und Forschungseinheit Medieninformatik

Medientechnik. Lehr- und Forschungseinheit Medieninformatik Medientechnik Heinrich Hußmann Ludwig-Maximilians-Universität München Wintersemester 2003/2004 Ludwig-Maximilians-Universität München Prof. Hußmann Medientechnik 1-1 Lehr- und Forschungseinheit Medieninformatik

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

Architektur interaktiver Systeme

Architektur interaktiver Systeme 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 08-0.1, Aug

Mehr

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Layout Manager 5 Komplexere Swing Komponenten Prof. Dr.

Mehr

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

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

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

Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301

Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301 Übung Nr. 20 Freitag, 09:00-11:00 Uhr in E3.301 Aufgabe 8: Implementierung eines Ereignis-Automaten a) Modellieren Sie einen Ereignis-Automaten für den in der Abbildung dargestellten und in Calculator.java

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

...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

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Zeichnen 5 Layout Manager 6 Komplexere Swing Komponenten

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

Computergrafik 2016 Oliver Vornberger. Kapitel 02: Grafische Benutzeroberflächen

Computergrafik 2016 Oliver Vornberger. Kapitel 02: Grafische Benutzeroberflächen Computergrafik 2016 Oliver Vornberger Kapitel 02: Grafische Benutzeroberflächen 1 RaufRunterApplet http://www-lehre.inf.uos.de/~cg/2016/skript/applets/raufrunter/app.html 2 GUI-Programmierung Windowmanager

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

14) Architektur interaktiver Systeme

14) Architektur interaktiver Systeme 14) 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 11-0.1,

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 12.12.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 8 Abgabe: Montag, 19.12.2011, 12.00 Uhr, Informatik

Mehr

Design Patterns I. Observer, Listener & MVC

Design Patterns I. Observer, Listener & MVC Design Patterns I Observer, Listener & MVC Design Patterns I - Gliederung - Was sind Design Patterns? - Definition von Design Patterns - Entstehung - Nutzen & Verwendung - MVC - Model, View, Controller

Mehr

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

Mehr

Architektur interaktiver Systeme

Architektur interaktiver Systeme 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 09-0.2, 09.12.08

Mehr

Architektur interaktiver Systeme

Architektur interaktiver Systeme 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 09-0.2, 09.12.08

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

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

26) Architektur interaktiver Systeme

26) Architektur interaktiver Systeme 26) Architektur interaktiver Systeme Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version 12-1.2, 04.06.12

Mehr

70. Programmierung interaktiver Systeme mit modularen Controllern

70. Programmierung interaktiver Systeme mit modularen Controllern Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie 70. Programmierung interaktiver Systeme mit modularen Controllern Prof. Dr. rer. nat. Uwe Aßmann Institut für Software-

Mehr

Graphische Oberflächen Teil 1

Graphische Oberflächen Teil 1 Graphische Oberflächen Teil 1 AWT und Swing Grundlegender Aufbau von GUIs Graphikausgabe Layoutmanagement Ereignismodell Menus und Actions GUI Elemente Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer

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

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

Softwaretechnik Programmieren von GUIs mit Swing

Softwaretechnik Programmieren von GUIs mit Swing Softwaretechnik Programmieren von GUIs mit Swing Fachhochschule Wiesbaden, FB Informatik Studiengang Medieninformatik Vorlesung im WS 2002/2003 1 Literatur H.M. Deitel, P.J. Deitel Java How to Program,

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

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