Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Swanhild Muhleman Geändert vor über 11 Jahren
1
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard
2
Geosoftware I – Lars Bernard 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
Geosoftware I – Lars Bernard 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
Geosoftware I – Lars Bernard Swing Components Top Level Container Intermediate Container JFrame.getContentPane() Components
5
Geosoftware I – Lars Bernard Swing Components To the Tutorial
6
Geosoftware I – Lars Bernard Beispiel für eine GUI mit Swing 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
Geosoftware I – Lars Bernard 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
Geosoftware I – Lars Bernard Beispiel für eine GUI mit Swing
9
Geosoftware I – Lars Bernard 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
Geosoftware I – Lars Bernard 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
Geosoftware I – Lars Bernard Java Event Handling Ein Listener für das Schließen des Fensters: class MyWindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } … // und so wird dieser an den Frame gehängt: testFrame.addWindowListener(new GISWindowListener()); … Einsatz von Adaptern erspart die sonst notwendige Implementierung des Interfaces.
12
Geosoftware I – Lars Bernard Java Event Handling Ein Listener für einen Button: 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()); … Listener werden idR. als interne Klassen von Frames ralisiert.
13
Geosoftware I – Lars Bernard 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 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…
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.