Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum 15.06.2004 Sitzung 7 Sitzung 7: User Interfaces in Java.

Ähnliche Präsentationen


Präsentation zum Thema: "Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum 15.06.2004 Sitzung 7 Sitzung 7: User Interfaces in Java."—  Präsentation transkript:

1 Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java

2 User Interfaces in Java Input/Output in Java View und Controller der GUI-Komponenten erscheinen dem Anwender als Einheit package java.io: allg. Datenströme package java.awt: alte GUI-Komponenten (abstract window toolkit) package javax.swing: neue GUI-Komponenten package java.awt.event: Event-Handling

3 User Interfaces in Java GUI-Konzepte in Java Container (Frame, Panel, Window): nehmen alle Komponenten auf sind selbst Komponenten, können also verschachtelt werden sind für Darstellung der Components zuständig Components : Steuerelemente (Buttons, Menus & MenuItems) Editierbare Informationen (TextFields, TextAreas) Nicht-editierbare Informationen (Lists, CheckBoxes, Choices) Zeichenflächen (Canvas) LayoutManager (FlowLayout, GridLayout,...): werden Containern zugewiesen sind für die Anordnung der Components zuständig EventHandling-Klassen (Listener, Events): Interaktion des AWT-Threads mit dem restlichen Programm

4 User Interfaces in Java Swing Components Top Level Container Intermediate Container JFrame.getContentPane() Components

5 User Interfaces in Java Swing Components Tutorial

6 User Interfaces in Java Beispiel für eine GUI mit Swing import … class GISFrame extends JFrame { GISFrame(String s) { super(s); // get Container Container contentPane = getContentPane(); // use a layout contentPane.setLayout (new GridLayout(0,1)); // create & add atomic component: JButton button1 = new JButton("click1"); contentPane.add(button1); // Menu is set directly to the frame: JMenuBar mBar = new JMenuBar(); JMenu fileMenu = new JMenu("File"); JMenuItem itemNew = new JMenuItem("New"); fileMenu.add(itemNew); mBar.add(fileMenu); setJMenuBar(mBar); }

7 User Interfaces in Java Beispiel für eine GUI mit Swing public class TestGUI { public static void main(String[] args) { GISFrame testFrame = new GISFrame("TestGUI"); testFrame.pack(); testFrame.setVisible(true); }

8 User Interfaces in Java Beispiel für eine GUI mit Swing

9 User Interfaces in Java Java Event Handling Die Art der Behandlung der typischen Events ist durch entsprechende AWT-Interface-Klassen vorgegeben ( MouseListener, TextListener. Hier wird also dynamische Bindung intensiv genutzt. Für die eigenen Event-Behandlungen müssen diese Interfaces implementiert werden. Adapter-Klassen sind Hilfsklassen, die ein Standard- Verhalten definieren und für eigene Event-Behandlungen spezialisiert werden können

10 User Interfaces in Java Java Event Handling – Prinzip 1. Betriebssystem sendet ein Ereignis (Mausklick links, Enter-Taste, Fenster schließen...) an die aktuell fokussierte Anwendung (unser Java-Programm) 2. Anwendung sendet das Ereignis an die betroffene Komponente weiter (Button, MenuBar,...) 3. Komponente informiert alle registrierten Listener über das Ereignis MouseListener KeyListener Die Listener-Klassen einer Komponente fangen Events auf und reagieren auf sie WindowListener

11 User Interfaces in Java Java Event Handling Ein Listener für einen Button: Listener werden idR. als interne Klassen von Frames realisiert. class GISButtonListener implements ActionListener { public void actionPerformed(ActionEvent e) { System.out.println("test") ; } … // und so wird dieser im Frame an den Button gehängt: button1.addActionListener(new GISButtonListener()); …

12 User Interfaces in Java Java Event Handling Ein Listener für das Schließen des Fensters: Einsatz von Adaptern erspart die sonst notwendige Implementierung des Interfaces. class GISWindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } … // und so wird dieser an den Frame gehängt: testFrame.addWindowListener(new GISWindowListener()); …

13 User Interfaces in Java Zu Aufgabe 5 Bilden Sie 2-er Gruppen Zusammenführen der TestGUI Überlegen Sie genau, wie das Design der Klasse Model aussehen muss – dokumentieren Sie den Code ausreichend ! Das Design der Klasse Model (= die Methoden- signaturen und Attribute) sollte in der nächsten Sitzung stehen. In der nächsten Aufgabe wird dann das fehlende V in MVC ergänzt…


Herunterladen ppt "Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum 15.06.2004 Sitzung 7 Sitzung 7: User Interfaces in Java."

Ähnliche Präsentationen


Google-Anzeigen