Graphische Oberflächen Teil 2

Größe: px
Ab Seite anzeigen:

Download "Graphische Oberflächen Teil 2"

Transkript

1 Graphische Oberflächen Teil 2 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 1

2 Inhalt AWT und Swing Unterschied Einbettung von Swing in AWT Grundlegender Aufbau von Swing GUIs Frames, Windows, Dialogs Panels Graphikausgabe Positionierung paintcomponent und AWT-Thread Graphics und Ausgabeoperationen Aufbau und Positionierung Component-Hierarchy LayoutManagement Spezielle Anordnungen: JTabbedPane, JSplitPane, JScrollPane, JInternalFrame, Ereignismodell Grundlegendes semantische und systemnahe Ereignisse Patterns für die Ereignisbehandlung Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 2

3 Inhalt (Fortsetzung) Menus und Actions GUI Elemente MVC-Paradigma - Abstrakte Modelle - Ereignisse Überblick über GUI Elemente - JLabel - JButton - JSpinner - JTextField - JFormattedTextField - Dialoge (Teil 2) Modale und Nicht-modale Dialoge Spezielle Dialoge: JFileDialog, JOptionsPane, Spezielle GUI-Elemente (Teil 2) JList JTable JTree Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 3

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

5 Ereignisse Komponenten lösen Ereignisse aus z.b. Klick auf Button, Auswahl eines Listenelements, Eingabe von Text Ereignisbehandler reagieren auf Ereignis Implementation der entsprechenden Schnittstelle Registration bei Komponente Ereignisobjekt liefert Zusatzinformationen z.b. Quelle, Modifikationstasten, public class Button extends Component { void addactionlistener(actionlistener l);... public interface ActionListener extends EventListener { void actionperformed(actionevent e); public class ActionEvent extends AWTEvent { String getactioncommand(); int getmodifiers(); String paramstring(); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 5

6 Hierarchie der Ereignisklassen Low-Level-Ereignisse: elementaren Nachrichten semantische Ereignisse: höherwertige Ereignisse semantische Ereignisse Low-Level- Ereignisse Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 6

7 Hierarchie der EventListener-Interfaces Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 7

8 Adapterklassen Implementieren Interface mit leeren Methoden Bequeme Art, nur bestimmte Ereignisse zu behandeln Focus Adapter Key Adapter Mouse Adapter MouseMotion Adapter Window Adapter Container Adapter Component Adapter Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 8

9 Maus und Tastatur Ereignisse von Maus und Tastatur z.b. Reaktion auf Mausbewegung oder Tastatureingabe Tastenereignisse empfängt nur Komponente mit Fokus public interface KeyListener { void keypressed(keyevent e); void keyreleased(keyevent e); void keytyped(keyevent e); public interface MouseListener { void mouseclicked(mouseevent e); void mouseentered(mouseevent e); void mouseexited(mouseevent e); void mousepressed(mouseevent e); void mousereleased(mouseevent e); public interface MouseMotionListener { void mousedragged(mouseevent e); void mousemoved(mouseevent e); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 9

10 Focus-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode FocusEvent FocusListener addfocuslistener Component Ereignismethode focusgained focuslost Bedeutung Eine Komponente erhält den Focus. Eine Komponente verliert den Focus. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 10

11 Key-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode KeyEvent KeyListener addkeylistener Component Ereignismethode keypressed keyreleased keytyped Bedeutung Eine Taste wurde gedrückt. Eine Taste wurde losgelassen. Eine Taste wurde gedrückt und wieder losgelassen. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 11

12 Component-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode ComponentEvent ComponentListener addcomponentlistener Component Ereignismethode componenthidden componentmoved componentresized componentshown Bedeutung Eine Komponente wurde unsichtbar. Eine Komponente wurde verschoben. Die Größe einer Komponente hat sich geändert. Eine Komponente wurde sichtbar. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 12

13 Container-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode ContainerEvent ContainerListener addcontainerlistener Container Ereignismethode componentadded componentremoved Bedeutung Eine Komponente wurde hinzugefügt. Eine Komponente wurde entfernt. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 13

14 Window-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode WindowEvent WindowListener addwindowlistener Dialog, Frame Ereignismethode windowactivated windowclosed windowclosing windowdeactivated windowdeiconified windowiconified windowopened Bedeutung Das Fenster wurde aktiviert. Das Fenster wurde geschlossen. Das Fenster wird geschlossen. Das Fenster wurde deaktiviert. Das Fenster wurde wiederhergestellt. Das Fenster wurde auf Symbolgröße verkleinert. Das Fenster wurde geöffnet. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 14

15 Action-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode ActionEvent ActionListener addactionlistener Button, List, MenuItem, TextField Ereignismethode actionperformed Bedeutung Eine Aktion wurde ausgelöst. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 15

16 Adjustment-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode AdjustmentEvent AdjustmentListener addadjustmentlistener Scrollbar Ereignismethode adjustmentvaluechanged Bedeutung Der Wert wurde verändert. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 16

17 Item-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode ItemEvent ItemListener additemlistener Checkbox, Choice, List, CheckboxMenuItem Ereignismethode itemstatechanged Bedeutung Der Zustand hat sich verändert. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 17

18 Text-Ereignisse Eigenschaft Ereignisklasse Listener-Interface Registrierungsmethode Mögliche Ereignisquellen Klasse, Interface oder Methode TextEvent TextListener addtextlistener TextField, TextArea Ereignismethode textvaluechanged Bedeutung Der Text wurde verändert. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 18

19 Entwurfsmuster für Handler-Code Die Einbindung von Handlern in die Applikation ist ein wesentliches Entwurfskriterium. Dazu gibt es unterschiedliche Ansätze, die wir besprechen wollen: Variante 1: Implementierung eines EventListener-Interfaces Variante 2: Lokale oder anonyme Klassen Variante 3: Anonyme Klasse plus Handlermethode (siehe JavaBeans- Beispielcode) Variante 4: Trennung von GUI- und Anwendungscode Variante 5: wie Variante 4 plus Datenmodell mit Change-Events Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 19

20 Grundlegende Überlegungen Ereignisse sollen etwas bewirken Ausführung von Code der Applikation Änderungen in den GUI-Elementen Gestaltung von Handler-Code ist durch zwei Herausforderungen getrieben Zugriff auf Applikation und/oder GUI ermöglichen gewisse Übersichtlichkeit und geeignete Strukturierung erreichen GUI auslösen einwirken Handler Applikation Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 20

21 Grundlegende Architektur In einer interaktiven Applikation muss es eine Klasse geben, die Aufbau der GUI kennt Verbindung zum Datenmodell/Applikationslogik hat GUI? Applikation Dies ist oft das Top-Level-Fenster, d.h. eine applikationsspezifische Ableitung von JFrame oder JDialog Sind Zeichenoperationen zu implementieren, wird dies in paintcomponent einer Ableitung von JPanel gemacht Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 21

22 Beispiel Punkte bei Mouse-Clicks Applikation, in der jeder Mouse-Click als ein Punkt ausgegeben wird PointFrame definiert Hauptfenster hält eine Liste von Points (= Applikationsdaten) implementiert main PointPanel bekommt Referenz auf die Liste von Points definiert paintcomponent-methode in der die Punkte gezeichnet werden Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 22

23 Beispiel Punkte bei Mouse-Clicks : PointFrame public class PointFrame extends JFrame { private List points; Datenmodell public PointFrame(List points) { this.points = points; settitle("points"); this.setcontentpane(new PointPanel(this.points)); pack(); Aufbau der GUI... public static void main(string args[]) { List points = new ArrayList(); for (int i = 1; i <= 10; i++) points.add(new Point(i*10, i*10)); PointFrame frame = new PointFrame(points); frame.setsize(400, 300); frame.show(); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 23

24 Beispiel Punkte bei Mouse-Clicks : PointPanel public class PointPanel extends JPanel { List points; public PointPanel(List points) { this.points = points; protected void paintcomponent(graphics g) { ListIterator pointsiterator = points.listiterator(); while (pointsiterator.hasnext()) { Point p = (Point) pointsiterator.next(); g.drawoval(p.x, p.y, 1, 1);... Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 24

25 Variante 1: Implementierung EventListener-Interfaces GUI-Komponente implementiert Listener und meldet sich bei Komponente an public class PointFrame extends JFrame implements MouseListener { private List points; public PointFrame(List points) {... getcontentpane().addmouselistener(this); public void mouseclicked(mouseevent e) { points.add(new Point(e.getX(), e.gety())); getcontentpane().repaint(); public void mouseentered(mouseevent e) {... Vorteile: einfach Nachteil: unhandlich wenn viele unterschiedliche Listener implementiert werden müssen, Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 25

26 Variante 2: Anonyme Klassen Es werden anonyme innere Klassen erzeugt, die Listener implementieren (oder Adapter erweitern) Diese greifen als innere Klassen auf die Objektvariablen zu public class PointFrame2 extends JFrame { private List points; public PointFrame2(List ps) {... getcontentpane().addmouselistener(new MouseAdapter () { public void mouseclicked(mouseevent e) { points.add(new Point(e.getX(), e.gety())); getcontentpane().repaint(); );... Vorteile: erlaubt die Implementierung von beliebigen Listenern Nachteil: kann auch unübersichtlich werden, weil alles in eine Klasse gepackt ist Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 26

27 Variante 3: Anonyme Klasse plus Handlermethode Wie bei Variante 2 anonyme innere Klassen Diese rufen aber Handler-Methoden der umgebenden Klasse auf entspricht Verfahren, wie viele GUI-Editoren Code erzeugen getcontentpane().addmouselistener(new MouseAdapter () { public void mouseclicked(mouseevent e) { mouseclickhandler(e); ); private void mouseclickhandler(mouseevent e) { points.add(new Point(e.getX(), e.gety())); getcontentpane().repaint(); Vorteile: etwas übersichtlicher Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 27

28 Variante 4: Trennung von GUI- und Anwendungscode Eigene Klassen, die die Listener implementieren public class MouseClickHandler implements MouseListener { private List points; public MouseClickHandler(List points) { this.points = points; public void mouseclicked(mouseevent e) { points.add(new Point(e.getX(), e.gety())); Component source = (Component) e.getsource(); source.repaint(); Zugriff auf Panel über Event-Objekt Vorteile: Trennung von GUI-Aufbau und Ereignsbehandlung Nachteile: In dieser Version keine strikte Trennung, weil Aufruf von repaint notwendig Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 28

29 Variante 5: Variante 4 + Datenmodell mit Change-Events Eigenes Datenobjekt PointList, welche die Änderungen signalisiert PointPanel5 meldet sich als Listener an und ruft bei Änderungen repaint() auf public class MouseClickHandler implements MouseListener {... public void mouseclicked(mouseevent e) { points.add(new Point(e.getX(), e.gety())); public class PointPanel5 extends JPanel implements PropertyChangeListener {... public void propertychange(propertychangeevent evt) { repaint(); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 29

30 Variante 5: Variante 4 + Datenmodell mit Change-Events (Forts.) public class PointList { List points = new ArrayList(); PropertyChangeSupport pchsprt = new PropertyChangeSupport(this); public void add(point p) { points.add(p); pchsprt.firepropertychange("points", null, points); public ListIterator listiterator() { return points.listiterator(); public void addpropertychangelistener(propertychangelistener l) { pchsprt.addpropertychangelistener(l); public void removepropertychangelistener(propertychangelistener l) { pchsprt.removepropertychangelistener(l); Vorteil: Klare Trennung GUI Applikation Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 30

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

32 Menüs mit Swing JMenu JMenuBar JMenuItem JRadioButtonMenuItem JMenu JCheckBoxMenuItem Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 32

33 Menüs und Untermenüs Menüleiste Instanz von JMenuBar Setzen mittels setjmenubar des JFrame Menü Instanz von JMenu (erweitert JMenuItem) Hinzufügen zu Menüleiste oder Menü mit Methode add Einfügen einer Trennlinie mit addseperator Menüeintrag Instanz von JMenuItem Hinzufügen zu Menü mittels add Kann Symbol und Tastenkürzel besitzen Verfügbare Varianten: - JCheckBoxMenuItem - JRadioButtonMenuItem Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 33

34 Eigenschaften eines Menüeintrages Mnemonik Unterstrichener Buchstabe für Tastaturnavigation im Menü Setzen mit setmnemonic Konstanten von KeyEvent für Tasten verwenden Tastenkombination Erscheint rechts neben Menütext KeyStroke.getKeyStroke(int keycode, int modifiers) Modifizierer: KeyEvent.ALT_MASK, KeyEvent.CTRL_MASK, KeyEvent.SHIFT_MASK Setzen mittels setaccelerator Symbol Laden von Datei mittels ImageIcon-Konstruktor Setzen mit seticon Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 34

35 Beispiel: Menüs // create and set menu bar menubar = new JMenuBar(); setjmenubar(menubar); // create menu menu = new JMenu("A Menu"); menu.setmnemonic(keyevent.vk_a); menubar.add(menu); // create menu item ImageIcon icon = new imageicon("images/middle.gif"); menuitem = new JMenuItem("Both text and icon", icon); menuitem.setmnemonic(keyevent.vk_b); menuitem.setaccelerator(keystroke.getkeystroke( KeyEvent.VK_B, KeyEvent.CTRL_MASK)); menuitem.addactionlistener(this); menu.add(menuitem); // add separator menu.addseparator(); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 35

36 Actions Action-Objekte realisieren Aktionen unabhängig von GUI-Elementen können an mehrere GUI-Elemente gebunden werden Klasse Action implementiert ActionListener hat enabled-state unterschiedliche Werte mit getvalue und putvalue verwalten interface Action extends java.awt.event.actionlistener { void actionperformed(actionevent e) boolean isenabled() void setenabled(boolean b) Object getvalue(string key) void putvalue(string key, Object value) void addpropertychangelistener(propertychangelistener listener) void removepropertychangelistener(propertychangelistener listener) Klasse AbstractAction stellt Basisimplementierung bereit Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 36

37 Actions (2) Mittels getvalue(string key) und putvalue(string key, Object value) können Eigenschaften der Aktion verwaltet werden. NAME: Name der Aktion MNEMONIC_KEY: Setzen der Mnemonik SHORT_DESCRIPTION: Benutzt für Tooltip etc. LONG_DESCRIPTION: Zum Beispiel für kontextsensitive Hilfe ACCELERATOR_KEY: Tastenkombination SMALL_ICON: Ablegen eines ImageIcons beliebige andere putvalue(action.name, name); putvalue(action.small_icon, icon); putvalue(action.short_description, "Ändern der Grundflächenfarbe in " + name.tolowercase()); putvalue("color", c); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 37

38 Actions (3) Action-Objekte werden an GUI-Komponenten gebunden an Buttons an MenuItems an PopupMenus an KeyStrokes // Button add(new JButton(sampleAction)); // Menu menu.add(new MenuItem(sampleAction)); // Popup popupmenu.add(sampleaction); // KeyStroke siehe nächste Folie Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 38

39 Zuordnung von KeyStrokes zu Actions Komponenten verwalten: InputMap-Tabellen: Zuordnung von KeyStroke-Objekten zu Aktionsnamen inputmap.put(keystroke.getkeystroke("ctrl S"), "panel.sample"); ActionMap-Tabelle: Zuordnung von Aktionsnamen zu Action-Objekten ActionMap actionmap = component.getactionmap(); actionmap.put("panel.sample", sampleaction); Es gibt 3 InputMap-Tabellen (die ausgehend von der Komponente mit Fokus nacheinander untersucht werden) WHEN-FOCUSED: verwendet, wenn Komponente Fokus hat InputMap inputmap = component.getinputmap(jcomponent.when_focused); WHEN_ANCESTOR_OF_FOCUSED_COMPONENT: verwendet, wenn eine Unterkomponente den Fokus hat InputMap inputmap = component.getinputmap(jcomponent. WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); WHEN_IN_FOCUSED_WINDOW: verwendet, wenn die Komponente im selben Fenster als Komponente mit Fokus InputMap inputmap = component.getinputmap(jcomponent.when_in_focused_window); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 39

40 Beispiel: ColorAction (1) Ändern die Hintergrundfarbe mit ColorActions ColorAction implementieren public class ColorAction extends AbstractAction { public ColorAction(String name, Icon icon, Color c) { putvalue(action.name, name); putvalue(action.small_icon, icon); putvalue(action.short_description, "Ändern der Grundflächenfarbe in " + name.tolowercase()); putvalue("color", c); public void actionperformed(actionevent event) { Color c = (Color) getvalue("color"); setbackground(c); repaint(); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 40

41 Beispiel: ColorAction (2) Panel mit ColorButtons implementieren Action-Objekte erzeugen class ActionPanel extends JPanel { Action yellowaction, blueaction, redaction; public ActionPanel() { yellowaction = new ColorAction("Gelb", new ImageIcon( "yellow-ball.gif"), Color.YELLOW); blueaction = new ColorAction("Blau", new ImageIcon( "blue-ball.gif"), Color.BLUE); redaction = new ColorAction("Rot", new ImageIcon( "red-ball.gif"), Color.RED); Buttons mit Actions erzeugen und anfügen add(new JButton(yellowAction)); add(new JButton(blueAction)); add(new JButton(redAction)); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 41

42 Beispiel: ColorAction (3) KeyStrokes mit Aktionsnamen verbinden InputMap imap = getinputmap( JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); imap.put(keystroke.getkeystroke("ctrl G"), "panel.yellow"); imap.put(keystroke.getkeystroke("ctrl B"), "panel.blue"); imap.put(keystroke.getkeystroke("ctrl R"), "panel.red"); Aktionsnamen mit Action-Objekten verbinden ActionMap amap = getactionmap(); amap.put("panel.yellow", yellowaction); amap.put("panel.blue", blueaction); amap.put("panel.red", redaction); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 42

43 Beispiel: ColorAction (4) PopUpMenu definieren // Kontextmenü erzeugen popup = new JPopupMenu(); popup.add(yellowaction); popup.add(blueaction); popup.add(redaction); this.addmouselistener(new MouseAdapter() { public void mousepressed(mouseevent e) { if (e.getbutton() == MouseEvent.BUTTON3) popup.show(e.getcomponent(), e.getx(), e.gety()); ); Im Frame Menu mit Actions definieren JMenuBar menubar = new JMenuBar(); this.setjmenubar(menubar); JMenu bgmenu = new JMenu("Background"); menubar.add(bgmenu); bgmenu.add(new JMenuItem(panel.yellowAction)); bgmenu.add(new JMenuItem(panel.blueAction)); bgmenu.add(new JMenuItem(panel.redAction)); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 43

44 Beispiel: Actions 1/3 public class HelloAction implements Action {... public HelloAction(Greeter greeter) { values = new HashMap(); enabled = true; propchlisteners = new LinkedList(); this.greeter = greeter; public Object getvalue(string key) { return values.get(key); public void putvalue(string k, Object v) { values.put(k, v); public void setenabled(boolean b) { if (b!= enabled) { boolean oldval = enabled; enabled = b; firepropertychangeevent(new Boolean(oldVal), new Boolean(enabled));... public interface Greeter { void sayhello(); Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 44

45 Beispiel: Actions 2/3... public boolean isenabled() { return enabled; public void addpropertychangelistener(propertychangelistener l) { propchlisteners.add(l); public void removepropertychangelistener( PropertyChangeListener l) { propchlisteners.remove(l); public void actionperformed(actionevent e) { if (greeter!= null) { greeter.sayhello(); private void firepropertychangeevent(object oldval, Object newval) {... Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 45

46 Beispiel: Actions 3/3 public class ActionDemo extends JFrame implements Greeter {... private void init() { // create action hact = new HelloAction(this); hact.putvalue(action.name, "Hello"); hact.putvalue(action.mnemonic_key, new Integer(KeyEvent.VK_H)); hact.putvalue(action.accelerator_key, KeyStroke.getKeyStroke(KeyEvent.VK_H, KeyEvent.CTRL_MASK)); hact.putvalue(action.small_icon, new ImageIcon("Smurf.gif")); hact.putvalue(action.short_description,"prints Hello.");... JMenuItem hellomi = new JMenuItem("Hallo"); saymenu.add(hellomi); hellomi.setaction(hact);... public void sayhello()... Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 46

47 Zusammenfassung Applets Kleine Programme innerhalb von Webseiten Eingeschränkte Berechtigungen Anwendungen Hauptfenster und Dialogfenster Pluggable Look and Feel unter Swing Layout-Manager Kontrollieren Position und Größe der Komponenten Ereignisse Klick auf Schaltfläche, Texteingabe, Auswahl eines Listenelements, Ereignisbehandler werden bei Komponente registriert Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 47

48 Literatur The JavaTM Tutor, Creating a GUI with JFC/Swing (The Swing Tutorial), Horstmann, Cornell, Core Java 2, Band 1 - Grundlagen, Markt und Technik, 2002: Kapitel 7-11 Krüger, Handbuch der Java-Programmierung, 3. Auflage, Addison-Wesley, 2003, Kapitel 23, 24, 28, 29, 30, 35, 36 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 48

49 Programmbeispiele Programmbeispiele zu den Entwurfsmuster für Handler-Code: Download von Homepage der LVA Handbuch der Java-Programmierung: Listing2801.java, Listing2802.java, Listing2803.java, Listing2804.java, Listing2805.java, Listing2806.java Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 49

Graphische Oberflächen Teil 2

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

Mehr

Graphische Oberflächen Teil 2

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

Mehr

Swing. Einführung Painting bei Swing Menus and Action Swing-Komponenten. Zusammenfassung

Swing. Einführung Painting bei Swing Menus and Action Swing-Komponenten. Zusammenfassung Swing Einführung Painting bei Swing Menus and Action Swing-Komponenten JTextField JFormattedTextField JSpinner JList JTable JTree weitere Komponenten Zusammenfassung Pratikum SWE 2 Institut für Systemsoftware

Mehr

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

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

Mehr

Swing. Swing. Einführung Painting bei Swing Menus and Action Swing-Komponenten. Zusammenfassung

Swing. Swing. Einführung Painting bei Swing Menus and Action Swing-Komponenten. Zusammenfassung Swing Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Swing Einführung Painting bei Swing Menus and Action Swing-Komponenten JSpinner JTextField JFormattedTextField JList JTable JTree weitere

Mehr

Swing. Swing. Einführung. Menus and Action Swing-Komponenten. Zusammenfassung. JTextField. JSpinner. JTable. weitere Komponenten

Swing. Swing. Einführung. Menus and Action Swing-Komponenten. Zusammenfassung. JTextField. JSpinner. JTable. weitere Komponenten Swing Pratikum 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Swing Einführung Painting bei Swing Menus and Action Swing-Komponenten JTextField JFormattedTextField JSpinner JList JTable JTree weitere Komponenten

Mehr

Beispiel: Eine Choice-Liste...

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

Mehr

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

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

Mehr

Eventhandling. Delegation model Eventhandler model

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

Mehr

Graphische Oberflächen Teil 1

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

Mehr

Eventhandling. Delegation model Eventhandler model

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

Mehr

I. Grundlagen II. Ereignistypen III. Ereignisempfänger. Event-Handling (EH)

I. Grundlagen II. Ereignistypen III. Ereignisempfänger. Event-Handling (EH) I. Grundlagen II. Ereignistypen III. Ereignisempfänger IV. Ereignisquellen V. Adapterklassen Event-Handling (EH) I. Grundlagen II. Ereignistypen III. Ereignisempfänger IV. Ereignisquellen V. Adapterklassen

Mehr

Graphische Oberflächen Teil 1

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

Mehr

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

Einführung in die Programmierung für NF. Übung 08 Einführung in die Programmierung für NF Übung 08 Inhalt Eventbehandlung in Java Swing Einführung in die Programmierung für NF Übung 08 2 Eventbehandlung in Java Swing Wir haben bereits einige grafische

Mehr

Auswahl aus mehreren Alternativen:

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

Mehr

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

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

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Toolbar 1. JToolBar 2. Menü 1. JMenuBar 2. JMenu 3. JMenuItem 4. KeyStroke 5. Beispiel JMenuDemo1 6. JCheckBoxMenuItem 7. JRadioButtonMenuItem 8. Beispiel JMenuDemo2 9. JPopupMenu 10. Beispiel

Mehr

Einführung in die OOP mit Java

Einführung in die OOP mit Java Einführung in die OOP mit Java Das Event-Hanlding Übersicht Event - Handling Das im JDK 1.1 Grundlagen Ereignistypen Ereignisquellen Adapterklassen für den Nachrichtenverkehr Variante1: Implementierung

Mehr

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

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 10 08.01.2014 Inhalt Programmierung Blatt 9 Eventbehandlung in Java Swing InputDialoge in Java UML Einführung in die Programmierung für NF Übung 10 2 Programmierung

Mehr

Programmieren II. Menü-Klassen in Java. Menüs. Menüs. Action. Dr. Klaus Höppner. GridBagLayout. Hochschule Darmstadt SS 2008

Programmieren II. Menü-Klassen in Java. Menüs. Menüs. Action. Dr. Klaus Höppner. GridBagLayout. Hochschule Darmstadt SS 2008 Programmieren II Menüs Dr. Klaus Höppner Action Hochschule Darmstadt SS 2008 GridBagLayout 1 / 30 2 / 30 Menüs Menü-Klassen in Java In Fenstern von grafischen Anwendungen kennt man folgende Arten von Menüs:

Mehr

NTB Druckdatum: 01.04.13 -

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

Mehr

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

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

Mehr

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

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

Mehr

Kapitel 7: Ereignis-basierte Kommunikation

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

Mehr

04 - Actions. Actions

04 - Actions. Actions Actions Motivation!In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt.!häufig werden gleiche Aktionen durch verschiedene Swing-Komponenten ausgelöst. Z.B. durch

Mehr

Menüs Action GridBagLayout. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 31

Menüs Action GridBagLayout. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 31 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 31 Menüs Action GridBagLayout 2 / 31 Menüs In Fenstern von grafischen Anwendungen kennt man folgende Arten von Menüs: Menüleisten

Mehr

Institut für Informatik

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

Mehr

Java für Computerlinguisten

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

Mehr

11. GUI-Programmierung mit SWING Überblick

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

Mehr

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

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

Mehr

GUI Programmierung mit JAVA Swing

GUI Programmierung mit JAVA Swing GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische

Mehr

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

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

Mehr

Vorlesung Informatik II

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

Mehr

Programmiertechnik GUI Programmierung mit Java Swing

Programmiertechnik GUI Programmierung mit Java Swing Programmiertechnik GUI Programmierung mit Java Swing Prof. Dr. Oliver Haase Software Engineering und Verteilte Systeme Raum F012 haase@htwg-konstanz.de Tel: 07531/206-720 Oliver Haase Hochschule Konstanz

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

GUI Programmierung mit javax.swing

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Kapitel 8: Grafische Benutzerschnittstellen

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

Mehr

Instrumentierung und Dekodierung

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

Mehr

Funktionale und Objekt-Orientierte Programmierkonzepte

Funktionale und Objekt-Orientierte Programmierkonzepte Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

Einführung in GUI-Programmierung. javax.swing

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

Mehr

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

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

Mehr

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

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

Mehr

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

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

Mehr

Projekt objektorientiertes programmieren in Java SS08. Event-Handling. Nils Heinrich

Projekt objektorientiertes programmieren in Java SS08. Event-Handling. Nils Heinrich Projekt objektorientiertes programmieren in Java SS08 Event-Handling Nils Heinrich 18.05.2008 Event-Handling Delegation Event Model / Delegation Based Event-Handling Ereignistypen Ereignisklassen Event

Mehr

Inhaltsverzeichnis Einleitung...1 Die Begleit-CD zu diesem Buch...5 Erweiterungen für Java Ereignisse...15

Inhaltsverzeichnis Einleitung...1 Die Begleit-CD zu diesem Buch...5 Erweiterungen für Java Ereignisse...15 Inhaltsverzeichnis 1 Einleitung...1 1.1 Von Java bis Swing?...1 1.2 Wer sind Sie?...1 1.3 Was dieses Buch nicht ist...2 1.4 Die Gliederung dieses Buches...2 1.5 Konventionen...2 1.6 Zeit, anzufangen...4

Mehr

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

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

Mehr

Swing Lernen am Code Teil 1

Swing Lernen am Code Teil 1 Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster

Mehr

Wiederholung aus SWE2

Wiederholung aus SWE2 Wiederholung aus SWE2 Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Inhalt Innere Klassen Diverse neue Sprachfeatures bei Java 1.5 Pratikum

Mehr

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

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

Mehr

16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz

16 Zeichnen in Swing-Komponenten , Prof. Dr. D. Ratz 16 Zeichnen in Swing-Komponenten 2009 2014, Prof. Dr. D. Ratz 16.1 Grafische Darstellung von Komponenten Der Repaint-Manager sorgt für die grafische Darstellung der Komponenten Aktivierung beim erstmaligen

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

6. Eventhandling in Java

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

Mehr

11. GUI-Programmierung mit SWING Überblick

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

Mehr

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

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

Mehr

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

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

Mehr

JLabel. dient zur Textanzeige. können auch Bilder anzeigen: mylabel.seticon( new ImageIcon( C:/Pfad/zum/Bild.jpg )

JLabel. dient zur Textanzeige. können auch Bilder anzeigen: mylabel.seticon( new ImageIcon( C:/Pfad/zum/Bild.jpg ) Swing Komponenten Thomas Wieczorek http://www.wieczo.net/?p=76 Hier trage ich die Komponenten zusammen, die Kreling und Wiedling in ihren Klausuren oft verwendet haben. Bei Verbesserung: Bitte Kommentar

Mehr

Ausgewählte Implementierungsprobleme

Ausgewählte Implementierungsprobleme Ausgewählte Implementierungsprobleme Rebecca Tiarks 15. Januar 2009 1 / 56 Inhaltsverzeichnis 1 2 / 56 AWT grafische Benutzeroberfläche (GUI) erste API von Sun AWT bietet GUI-Komponenten, Operationen zum

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 10. Eventhandling in Java 10.1 Ereignisse (Events vs. Exceptions) 10.2 Eventhandling in Java 10.3 Listener 10.4 Adapter 10.7 Mouse- und Key- Eventhandling 10.8 Listener (Übersicht).1 10.1 Ereignisse (Events

Mehr

Kap. 36. SWING: Menüs. und weitere SWING-Container. Seán Dempsey

Kap. 36. SWING: Menüs. und weitere SWING-Container. Seán Dempsey Kap. 36 SWING: Menüs und weitere SWING-Container Seán Dempsey Grundlagen von Menüs Hauptklasse: JMenuBar SWING- Entsprechung der AWT-Menüklasse MenuBar JMenuBar Menüleiste (JMenuBar) enthält Menüs (JMenu)

Mehr

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

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

Mehr

Tag 9: Grafische Benutzeroberflächen

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

Mehr

Grafische Benutzeroberflächen Container Menüs JComponent JLabel/JTextField Buttons Events und Listener. Programmieren I.

Grafische Benutzeroberflächen Container Menüs JComponent JLabel/JTextField Buttons Events und Listener. Programmieren I. Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 Grafische Benutzeroberflächen 2 Container 3 Menüs 4 JComponent 5 JLabel/JTextField 6 Buttons 7 Events und Listener Einführung:

Mehr

11. GUI-Programmierung mit SWING Überblick

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

Mehr

1. Konventionelle Ein-/Ausgabebetonte Programmierung

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

Mehr

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

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

Mehr

Liste Programmieren Java Überblick

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

Mehr

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard

Mehr

Das Interface ÁØ ÑÄ Ø Ò Ö verlangt die Implementierung

Das Interface ÁØ ÑÄ Ø Ò Ö verlangt die Implementierung ººº ÔÙ Ð ÚÓ Ô ÒØ Ö Ô µ ß º Ø ÓÐÓÖ ÓÐÓÖµ º ÐÐÊ Ø ½¼¼ ¼ ¾¼¼ ½¼¼µ Ð ÔÙ Ð ÚÓ Ø ÑËØ Ø Ò ÁØ Ñ Ú ÒØ µ ß ËØÖ Ò ËØÖ Ò µ º ØÁØ Ñ µ Û Ø º Ö Ø ¼µµ ß ³Û³ ÓÐÓÖ ÓÐÓÖºÛ Ø Ö ³Ö³ ÓÐÓÖ ÓÐÓÖºÖ Ö ³ ³ ÓÐÓÖ ÓÐÓÖº Ö Ò Ö ³ ³ ÓÐÓÖ

Mehr

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

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

Mehr

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

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

Mehr

Abstrakte Klassen, Interfaces

Abstrakte Klassen, Interfaces Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische

Mehr

JavaBeans Property-Editoren und Customizer

JavaBeans Property-Editoren und Customizer JavaBeans Property-Editoren und Customizer J. Heinzelreiter WS 2004/05 Property-Editoren Builder Tools beinhalten Standard-Editoren für Zahlen (ganze Zahlen, Gleitkommazahlen), Strings, Auswahl von Fonts,

Mehr

Ein Manager mit CardLayout layout/cards.java

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

Mehr

GRAFISCHE BENUTZERSCHNITTSTELLEN

GRAFISCHE BENUTZERSCHNITTSTELLEN Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind

Mehr

Graphische Oberflächen Teil 3

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

Mehr

Kapitel 10. Event Handling 10.1 MVC

Kapitel 10. Event Handling 10.1 MVC Kapitel 10 Event Handling 10.1 MVC Erinnerung: Model - View - Controler (Smalltalk-80): Schema zum Implementieren graphischer Benutzeroberflächen Model: Klasse, die das funktionale Verhalten der Anwendung

Mehr

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

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

Mehr

Softwaretechnik Programmieren von GUIs mit Swing

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

Mehr

Ereignisverarbeitung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 12: GUI 2: AWT (2) - Ereignisverarbeitung

Ereignisverarbeitung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 12: GUI 2: AWT (2) - Ereignisverarbeitung Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Vorlesung 12: GUI 2: AWT (2) - SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Überblick Bisher haben wir nur Steuerelemente definiert

Mehr

Ereignisse (Events) in Java

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

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 10. Eventhandling in Java 10.1 Eventhandling 10.2 Listener 10.3 Adapter 10.7 Listener (Übersicht).1 10.1 Eventhandling 10.1 Eventhandling Eventhandling in Java ist Teil des AWT-package. Es dient der Kommunikation

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 5

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

Mehr

Ereignisverwaltung und Layout-Typen

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

Mehr

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

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

Mehr

Javakurs für Fortgeschrittene

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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:

Mehr

Einführung in die Programmierung Blockkurs Java

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

Mehr

...erinnern Sie sich? oopjs4b / kwhbkd4r

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

Mehr

AWT. Einfache AWT-Anwendung. Swing. Vorlesung 1. Handout S. 2. import java. awt. * ;

AWT. Einfache AWT-Anwendung. Swing. Vorlesung 1. Handout S. 2. import java. awt. * ; Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 56 Grafische Benutzeroberflächen Container Menüs JComponent JLabel/JTextField Buttons Events und Listener 2 / 56 Einführung:

Mehr

Einführung in GUI-Programmierung. javax.swing

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

Mehr

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr