Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Adalhard Landfried Geändert vor über 10 Jahren
1
Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing
2
Präsentationsschicht - Verantwortlichkeiten realisiert Benutzeroberfläche grafisch sorgt für die Dialogkontrolle Folge von Fenstern zur Durchführung eines Arbeitsablaufes
3
Präsentation von Daten Meldungsfenster, Eingabedialoge, … Darstellungskomponenten: Textfelder, Listboxen, Radiobuttons, Tabellen, Label, … Editieren von Objektdaten -> Plausibilisierung
4
Dialogkontrolle Kontrollfluss in der Benutzerschnittstelle Benutzerereignisse werden behandelt Wichtig! -> keine Dialogabfolge in Fenstern in Swing: Event-Listener
5
Ereignisbehandlung mit Event Listenern in Swing Objekte spezieller Klassen müssen bei Darstellungkomponenten registriert werden tritt das Ereignis ein, werden Methoden der Event Listener aufgerufen für unterschiedliche Ereignisse(Tastatur-, Mausereignisse), unterschiedliche Methoden
6
Ereignisbehandlung Bsp. Dialog Bitte Namen eingeben: Name: ok KeyListener TextfeldListener keyPressed(KeyEvent) : void ActionListener ButtonListener actionPerformed(ActionEvent) 1… 2mTextfeld.addKeyListener(new TextfeldListener(){ 3 public void keyPressed(KeyEvent e){ 4 textfeld_keyPressed(e); 5 } 6}); 7btn.addActionListener(new ActionListener(){ 8 public void actionPerformed(ActionEvent e){ 9 btn_actionPerformed(e); 10 } 11}); 12private void textfeld_keyPressed(KeyEvent e){ 13 if(e.getKeyChar()==?)… 14}…
7
Dialogkontrolle Bsp. Ablauf Anwendungsschicht-Schnittstelle(Fassade) Suchoptionen Begriff: Buch ok cancel Suchergebnis GUI-Controller constructor(ergebnis){ this.ergebnis = ergebnis; fillWindow(); } ok void doSearch(String suchStr){ ergebnis = fassade.find(suchStr); //Suchergebnis in einem neuen Fenster anzeigen } … Listener actionPerformed ergebnis Präsentationsschicht
8
Action-Konzept in Swing bietet Möglichkeit, eine in der GUI benutzte Funktionalität mit ihren erweiterten Eigenschaften in einer Java-Klasse zusammenzufassen viele Swing-Komponenten(z.B. JButton) besitzen Action-Member-Variable Funktionalität einer Action-Klasse kann in mehreren Menüs, Fenstern genutzt werden
9
Action - Interface public interface Action extends ActionListener{ public void actionPerformed(ActionEvent e); public Object getValue(String key); public void putValue(String key, Object value); }
10
Registrieren von Action-Objekten anmelden eines Action-Objekts => mittels setAction()-Methode =>wird als Listener registriert =>actionPerformed() wird immer aufgerufen, sobald passendes Ereignis in Darstellungskomponente stattfindet.
11
Parameter in Action-Objekten angemessene Reaktion => Parameter Mittels putValue()/getValue() Übergabe von Schlüssel/Wert-Paaren Problem: richtiger Zeitpunkt der Übergabe
12
Parameter-Übergabe Trick: Im z.B. Button wird zusätzlicher ActionListener registriert => dessen actionPerformed()-Methode wird dann ebenfalls aufgerufen und zwar zuerst =>hier werden Parameter des Action-Objekts gesetzt.
13
Action-Konzept Bsp. public class FindAction extends AbstractAction{ public void actionPerformed(ActionEvent ae){ Vector result = Marktplatz.findKatalogelement(getValue(name)); ResultDlgFrame rDlg = new ResultDlgFrame(result); rDlg.show(); } public class SearchDlgFrame extends LineEditFrame{ protected JButton jb; protected JTextField tf; public SearchDlgFrame(){ jb.setAction(new FindAction()); jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ doActionPerformed(e); } }); … } public void doActionPerformed(ActionEvent e){ Object src = e.getSource(); Action action = ((JButton)src).getAction(); action.putValue(name,tf.getText()); } … }
14
Trennung der Verantwortklichkeiten - MVC MVC: Model-View-Controller-Entwurfsmuster Trennung zwischen: -Daten der Anwendung (model), -Darstellung der Daten (view) und -Dialogkontrolle(control)
15
Swing-Komponenten Elementare GUI-Controlls: Textfelder, Radiobuttons,… Fenster(JFrame) und andere Container(JPanel) Layout-Manager steuert Anordnung in Containern(z.B. BorderLayout, FlowLayout, GridLayout)
16
Überblick – wichtige Swing- Komponenten Komponente Aufgabe wichtige Methoden JLabel Darstellung von Zeichenketten setText(String) JTextField Anzeigen und Editieren von setText(String) Zeichenketten getText():String JTextArea analog, nur mehrzeilig analog JCheckBox Darstellung und Änderung von setSelected(boolean) Wahrheitswerte durch Ankreuzen isSelected(): boolean JComboBox stellt Liste von Optionen in Form getSelectedItem():Object einer Dropdown-Liste dar setSelectedItem(Object) JTree stellt Daten hierarchisch dar setModel(TreeModel) (z.B. Verzeichnisstruktur) JButton stellt einen einfachen Button dar
17
Swing-Komponenten Tutorial
18
Überblick über das bsp. Framework JFrame RootFrame Observer TreeFrame DialogFrame LineEditFrame JPanel TablePanel JTextField CheckableTextField Interface PropertyChecker AbstractChecker Fensterklassen Tabellen Eingabefelder
19
Dialogfenster DialogFrame(String title) void createCancelButton() JButton addActionButton(Action action) abstract void doActionPerformed(ActionEvent e) title button nbutton1 …
20
Eingabedialoge LineEditFrame(String title) void addProperty(String label, JComponent inputElement) void setData(Object data) void setFacade(IMarktplatz marktplatz) title button1button n… label 1: textfield1 label 2: textfield2 label…: textfield n label … radiobutton label … checkbox
21
Überblick Controller-Komponenten AbstractAction MarktAction LoginActionDoFindAction CheckLoginActionNewAnbieterAction
22
Abläufe Bsp. Anmeldung eines Anbieters loginDlg LoginDlgFr MarktAction CheckLoginAction fassade Marktplatz mCurrentAnbieter Anbieter Enter name/password Klick login actionPerformed() currentAnbieter = checkLogin(name,pwd) [currentAnbieter!=null] loginFailed() ahf AnbieterHomeFrame show() getName()
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.