Seite 1. Kapitel 7: GUI-Rahmenwerk: AWT & Swing. Entwicklungstufen von Benutzerschnittstellen
|
|
- Heike Bäcker
- vor 7 Jahren
- Abrufe
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 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?'
MehrSeite 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
Mehr1. 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,
MehrWiederholung: 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
MehrB1. 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
Mehr7. 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
Mehr7. 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,
MehrB1. 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
MehrB1. 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
Mehr2. 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
MehrObjektorientierte 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
MehrEinfü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.
MehrProgrammieren 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,
MehrIn 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
MehrZiele. 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
MehrGUI-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
MehrEinfü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
MehrGUI 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
MehrKapitel 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
Mehr2. 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
MehrEinfü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.
MehrGrundlagen 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
MehrZentrale 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
MehrUniversitä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)
MehrBeispiel: Eine Choice-Liste...
Beispiel: Eine Choice-Liste...! "#%$&! ; = '( ) )+**,-. /*0 1 2 ) 3 #%$+45* 6 7%$& -* 89 #6 #:/*0 #%$ < /0 # 1< ) 1< >?270 #@ < /0 # 1 2 ) )
MehrEinfü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
MehrIn 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
Mehr2. 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
MehrMedientechnik. 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
MehrInstitut 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
MehrIst 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
MehrEinfü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
MehrNTB 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
MehrTag 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)
MehrAuswahl 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
MehrEreignisverwaltung 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
MehrEinfü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
MehrJavakurs 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
MehrGUI-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
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:
MehrGUI 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
MehrZiel 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
MehrGraphische 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
MehrVorlesung 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
MehrFunktionale 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
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:
MehrWas 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
Mehr11. 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
MehrGRAFISCHE 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
MehrGrafische 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
MehrInstitut 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,
MehrSommersemester 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
MehrEinstieg 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
MehrGraphical 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
MehrArchitektur 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
MehrBenutzeroberflä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
MehrEAD 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,
MehrProf. 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
MehrGrafische 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
MehrEinfü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
MehrListe 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
MehrJava 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
MehrEventhandling. 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
MehrJava 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
MehrMedientechnik. 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
MehrMedientechnik. 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
MehrArchitektur 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
MehrSoftwaretechnik (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.
MehrMedientechnik. 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
MehrHeute. 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 Aufgabe 8: Implementierung eines Ereignis-Automaten a) Modellieren Sie einen Ereignis-Automaten für den in der Abbildung dargestellten und in Calculator.java
MehrSwing : 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 !" Ereignisbehandlung in awt/swing führt Liste interessierter Behandler GUI- Komponente (z.b. Knopf) wird eingetragen trägt ein Ereigniskanal fertigt ab neuer Behandler
MehrSoftwaretechnik (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
MehrGrafische 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"
MehrComputergrafik 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
MehrLayout 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
Mehr14) 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,
MehrFakultä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
MehrDesign 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
Mehr11. 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
MehrArchitektur 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
MehrArchitektur 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
MehrEventhandling. 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
MehrEreignisse (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
Mehr26) 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
Mehr70. 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-
MehrGraphische 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
MehrVorlesung 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
MehrHochschule 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:
MehrSoftwaretechnik 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,
MehrProgrammieren 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.
MehrCS1005 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