Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.

Ähnliche Präsentationen


Präsentation zum Thema: "Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing."—  Präsentation transkript:

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()


Herunterladen ppt "Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing."

Ähnliche Präsentationen


Google-Anzeigen