Kapitel 7: GUI-Rahmenwerk: AWT & Swing
|
|
- Edwina Bauer
- vor 8 Jahren
- Abrufe
Transkript
1 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?' Lewis Carroll Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-1
2 Entwicklungstufen von Benutzerschnittstellen 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-2
3 GUIs: Meilensteine der Entwicklung 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... AWT teils schon legacy Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-3
4 1973: XEROX Alto Maus & Bitmap 1984: Apple Macintosh 1981: XEROX Star echte Fenster 1985: X-Windows MIT 1988: NextStep Display- Postscript Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-4
5 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 Swing: Look and Feel von Plattform unabhängig Windows Solaris Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-5
6 GUIs erfüllen ergonomische Anforderungen 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 flexibel & aufgabenangemessen den Menschen unterstützen Daten quasiparallel in verschiedenen Werkzeugen Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-6
7 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). Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-7
8 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-8
9 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 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-9
10 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-10
11 AWT-Klassenhierarchie (Ausschnitt) Object Bekanntes Muster!! MenuComponent Component * MenuBar MenuItem Text Component Label Button Container Menu TextField Panel Window ScrollPane PopupMenu Swing-Komponenten mit einem J davor Dialog FileDialog Frame Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-11
12 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-12
13 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"); 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); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-13
14 Wirkung der Layout-Strategien FlowLayout(FlowLayout.LEFT,10,30) GridLayout(0,2,10,30)) Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-14
15 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 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-15
16 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-16
17 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 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-17
18 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-18
19 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); public class WindowAdapter implements WindowListener { Andere Beispiele für Adapter-Muster vgl Kap 4, S. 25 ff 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 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-19
20 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-20
21 Schließbares Fenster: Klassenstruktur <<interface>> WindowListener windowclosing (e: WindowEvent) Window addwindowlistener (l: WindowListener) <<use>> WindowEvent WindowAdapter Frame setsize settitle setvisible WindowCloser registriert bei ExampleFrame Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-21
22 Die Model-View-Controller-Architektur 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-22
23 Modell und Sicht Ereignisse bewirken Änderungen Sicht Sicht Benachrichtigung über Änderungen Modell Beispiel: Dokumentenansicht, Statusanzeige,... Frage: Wie hält man das Modell unabhängig von den einzelnen Sichten darauf? Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-23
24 Das Beobachter - Muster (auch Publisher/Subscriber ) A-Beobachter update beobachtet * <<interface>> Observer update A for all observers o do: o.update() Observable addobserver deleteobserver setchanged notifyobservers Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-24
25 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); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-25
26 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-26
27 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. Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-27
28 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-28
29 Das Counter-Beispiel Ein paar Details nur im kompletten Programm! Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-29
30 Counter-Steuerung über Menü Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-30
31 Counter-Steuerung über Knöpfe Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-31
32 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-32
33 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); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-33
34 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-34
35 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) Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-35
36 Counter: Struktur der Oberfläche Fensterrahmen (OS-spezifisch) mit Titel & Knöpfen change menubar valuelabel valuedisplay diplaypanel incbutton resetbutton decbutton buttonpanel panel Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-36
37 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"); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-37
38 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-38
39 Counter: Aktionen für Knöpfe incbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { mycounter.increment(); ); Anonyme innere Klassen resetbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { mycounter.setvalue(0);... mit redefinierten Methoden ); decbutton.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { mycounter.decrement(); ); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-39
40 Counter: Aktionen für Menüpunkte tovalue.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { String num = JOptionPane.showInputDialog("new value is?"); mycounter.setvalue(integer.parseint(num)); ); negative.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { mycounter.setvalue(0-mycounter.getvalue()); ); tomax.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { mycounter.setvalue( ); ); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-40
41 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 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-41
42 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-42
43 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); 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
44 Beispiel Scribble Eine minimale Grafik-Anwendung, das Scribble -Zeichenprogramm: Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-44
45 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"); Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-45
46 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() { public void actionperformed(actionevent e) { 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-46
47 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; Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-47
48 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-48
49 Technik des Double Buffering class... extends JPanel { 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; flickerfreie Animation Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-49
50 Beispiel Dashboard Eine komplexere Grafik-Anwendung ist das Dashboard - Simulationsprogramm: Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-50
51 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 Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-51
52 Dashboard : Struktur des Center-Panels Gridlayout 3 x 3 : Fensterrahmen (OS-spezifisch) mit Titel & Knöpfen FuelView TempView OilView SpeedView TurnView Acc.-View GearView BrakeView Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-52
53 Dashboard : Klassendiagramm Panel GaugeView DialView PedalView GearView FuelView OilView TempView TurnView SpeedView Acc.-View BrakeView dependants Observer Dashboard CarModel Timer Observable Thread Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-53
54 Dashboard : View- und Controller-Klassen ItemListener MouseListener MouseAdaptor als innere Klassen in Dashboard!! Gear- Item- Listener Brake- Mouse- Listener Acc.- Mouse- Listener GearView BrakeView Acc.-View Dashboard Lothar Schmitz UniBwM (teils nach Prof. Hußmann TUD) Objektorientierte Programmierung K7-54
Seite 1. Kapitel 7: GUI-Rahmenwerk: AWT & Swing. Entwicklungstufen von Benutzerschnittstellen
Entwicklungstufen von Benutzerschnittstellen Kapitel 7: GUI-Rahmenwerk: AWT & Swing 7.1 Aufbau & Funktionsweise 7.2 Beispiel Counter im Detail 7.3 Grafikprogrammierung an Beispielen 'Thenightisfine', thewalrussaid,
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
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
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.
MehrGUI Programmierung in Java
vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf
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:
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
MehrSwing Lernen am Code Teil 1
Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster
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,
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
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
MehrGrafische Benutzeroberflächen mit Swing
Grafische Benutzeroberflächen mit Swing KW 30, Zentralübung Informatik II 2006-07-24 Klausur: Stichpunkte 1. Auswertung System.out.println("abc" instanceof String); Ergebnis von instanceof ist ein boolean,
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.
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
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:
MehrKap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.
MehrDas Model View Controller (MVC) Konzept
Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2
MehrGrundlagen der Programmierung APPLETS
Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets
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
MehrAbteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2
Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau
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)
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
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
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
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
MehrBenutzeroberflächen. Java Teil 4
Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in
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
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrEinstieg in die Informatik mit Java
1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet
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 ) )
MehrAK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de
Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben
MehrSwing :Komponenten I (Teil 2)
l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen l Swing stellt eine Menge von Klassen zur Verfügung l Swing wurde
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
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
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
MehrApplets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.
Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung
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
MehrJava Projekt: Tic Tac Toe + GUI
Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel
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
MehrGUI-Programmierung in Java
GUI-Programmierung in Java Jan Pihl, Daniel Bugdalle 1. Einleitung Betreuer: Thomas Ströder Die Bedienung von Software stellt sich oft als etwas schwierig für viele Nutzer heraus, wenn es keine grafische
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrGrafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung
Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen
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,
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrEreignisbehandlung 21
Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen
Mehr2A Basistechniken: Weitere Aufgaben
2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen
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)
MehrJButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2009 1 / 30 2 / 30 JButton, JCheckBox, JRadioButton In Swing existieren drei wesentliche Klassen für Schaltflächen: JButton für normale
MehrMit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
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
MehrObjektorientierte Softwareentwicklung
Objektorientierte Softwareentwicklung Exkurs GUI-Programmierung mit Java-SWING Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Für Hinweise und konstruktive Kritik
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
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
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
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
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
MehrDHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung
DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung Aufgabe Editor package BA.GUI.Swing; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.logging.level; import java.util.logging.logger;
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
MehrJava Design und Event Handling. Natascha Hoebel Professur Prof. R. V. Zicari. AWT SWING Layout Design Event Handling
Java Design und Event Handling Natascha Hoebel Professur Prof. R. V. Zicari AWT SWING Layout Design Event Handling Benutzerschnittstellen User Interfaces (UI) UI: GUI, WEB-Schnittstellen GUI: interaktive
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
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
MehrJetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.
Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens
MehrDrucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC
Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC Progwerkstatt Philipp Güttler, Christoph Schied, Nicolai Waniek 01.12.2008 Seite 2 Drucken Drucken ist eigentlich ganz einfach...
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:
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrJ.1. J.1 GUI-Programmierung in in Java. 2002 Prof. Dr. Rainer Manthey Informatik II 1
GUI-Programmierung in Java GUI-Programmierung in in Java 2002 Prof Dr Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: : Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen
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
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrProgrammieren 2 Selbststudium Semesterwoche 4
Programmieren 2 Selbststudium Semesterwoche 4 Kapitel 11.1, 11.2 und 11.3 1. Das Konzept "Interface" ist wichtig und ist uns schon mehrfach begegnet. In welchen Zusammenhängen hatten wir es schon mit "Interfaces"
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
Mehr8 Design Patterns. Events
8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
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
MehrTutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane
Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse
MehrEin Manager mit CardLayout layout/cards.java
201 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Ein Manager mit CardLayout layout/cards.java CardLayout dient vor allem zum Aufbau von Inspektoren: In der gleichen Fläche soll je nach
MehrProgrammieren 2 07 JavaFX-Properties und Data-Binding
Programmieren 2 07 JavaFX-Properties und Data-Binding Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Letztes Mal haben wir Entwickler synchronisiert...
Mehr