12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

VMS data Geografisk og tidsmæssig udvikling af indsatsen i tobisfiskeriet v/ dataspecialist Josefine Egekvist Sekretariat for myndighedsbetjening.
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Funktioner Grundbegreber.
1 JavaServer Faces Copyright © Lund & Bendsen A/S Navigation, events & listeners.
Location-Based services. Maps Agenda •Geocoding •Interaktive kort med Map Vievs og Map Activities •Overlays til kort •Location-based services •Advarsler.
Hjemmesidekonstruktion Tjekspørgsmål 1.Hvad er et markup-sprog – hvad bruges det til? 2.Hvad er forskellen mellem et markup-sprog og et scriptsprog? 3.Hvad.
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
1 GUI Programmering i.NET WinForms. Mål “.NET supports two types of form-based apps, WinForms and WebForms. WinForms are the traditional, desktop GUI.
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
Trivselsundersøgelse og ledelsesevaluering
RT Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende ”Java Optimized Processor” (JOP) Speciale – efterår.
Projektledelse IT-projektledelse (ITP) Projektledelse og Produktion af Digitalt Indhold (DPI) Projektledelse IT-projektledelse (ITP) Projektledelse og.
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
13 – Database med JDBC. 2 NOEA2009Java-kursus – JDBC JDBC JDBC er et standard bibliotek til at tilgå relational databaser API’et er en standardiseret.
1 JavaServer Faces Copyright © Lund & Bendsen Dynamikken i JSF.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
1 Analyse af geografiske valgresultater Søren Risbjerg Thomsen Institut for Statskundskab Aarhus Universitet.
SEO PÅ AU.
Problemer med at bruge tympanometri? Slagelse og Middelfart okt.-nov
Statistik.

Design af brugerflader12.1 Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
Representations for Path Finding in Planar Environments.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
14 - JavaBeans. 2 NOEA2009Java-kursus – JavaBeans Content What is a Java Bean? BDK What makes Bean possible? Support for Java Bean References.
09 – Arv og polymorfi i java
Hvordan man skriver koden.
Projektledelse IT-projektledelse (ITP) Projektledelse IT-projektledelse (ITP) Lektion september 2004 Peter Olaf Looms.
Kursus om borger.dk og brugen af digital signatur
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Abstrakte klasser og interfaces i Java
Object-Orienteret Programmering og Design Kilde: Joe Hummel.
Programering af mobile enheder Windows Phone Storage.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
GP 9, 10/ Grundlæggende programmering Forår 2002 Forelæsning 9 onsdag 10/ kl. 9:15 – 12:00.
Matematik B 1.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Opgaver Klassen Container Layout-manager Event-håndtering.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
10.mar. 15 Udvikling i løn, priser og konkurrenceevne Dansk Industri.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
VTU 2008 | Virksomhedstilfredshedsundersøgelse Aalborg Tekniske Skole Svarprocent: 27% (414 besvarelser ud af mulige)
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
 Jens Bennedsen, 2003Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
 Jens Bennedsen 2001Multimedie programmering MVC Et mønster for grænseflader.
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11A.1 Grafiske Brugergrænseflader Java’s AWT framework.
 Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing.
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
Præsentationens transcript:

12 – GUI med Swing

2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector

3 NOEA2009Java-kursus – GUI med Swing Demo En simpel applikation der viser brug af komponenter og event handlere

4 NOEA2009Java-kursus – GUI med Swing Event-driven applications Ideen er meget simpel: –“user actions” bliver til “events” –events overføres en for en til applikationen, som processererer eventen vha. en eventhandler –Sådan programmeres de fleste GUI’er… GUI App

5 NOEA2009Java-kursus – GUI med Swing Event Model? Events bruges til håndtere interaktion med GUI komponenter, dvs. hvordan skal programmet f.eks håndtere tryk på en knap Tre vigtige elementer Event Source Event Listener/Handler Event Object

6 NOEA2009Java-kursus – GUI med Swing Event Source, Event Listener/Handler Event Source > Den GUI komponent der genererer hændelsen > Eksempel: button Event Listener/Handler > Modtager og håndterer events > Indeholder forretnings logik   Ommer!! Kalder logik i forretningslaget! > Eksempel: Vis information til brugeren. Slå op i database. Beregn noget

7 NOEA2009Java-kursus – GUI med Swing Event Object Oprettes når event’et sker. Indeholder nødvendig information om hændelsen Event type som er opstået Kilde til event, f.eks minKnap Repræsenteret af en Event klasse

8 NOEA2009Java-kursus – GUI med Swing Event Listener registreres ved Event Source En listener registreres ved en kilde og venter derefter til et event opstår Når et event opstår > Event objekt oprettes af event source > Event objekt fyres af til de registrerede listeners (metode på event listener kaldes med et event objekt som parameter) Når listeneren modtager et event objekt fra kilden > Undersøg og behandl den event som er opstået.

9 NOEA2009Java-kursus – GUI med Swing Control Flow of Delegation Event Model

10 NOEA2009Java-kursus – GUI med Swing Observer pattern Also called Observable in some litterature Might also be a interface

11 NOEA2009Java-kursus – GUI med Swing Metoder på GUI komponenter til registrering Registrere en listener: void add Listener( Listener listenerObj) hvor > afhænger af komponenten >f.eks Key, Mouse, Focus, Component, Action mv. > En komponent kan have flere listeners registreret Afregistere en listener: void remove Listener( Listener listenerObj)

12 NOEA2009Java-kursus – GUI med Swing Event Classes Event Classes

13 NOEA2009Java-kursus – GUI med Swing Event klasser Arver fra EventObject klassen > java.util package AWTEvent klassen > Subklasse til EventObject > Defineret i java.awt package > Rod for alle AWT-baserede events > Subklasser følger denne navne konvention: Event

14 NOEA2009Java-kursus – GUI med Swing Event klasser

15 NOEA2009Java-kursus – GUI med Swing Event Listeners Klasser som implementerer Listener interfaces Typiske Listener interfaces:

16 NOEA2009Java-kursus – GUI med Swing ActionListener Metode ActionListener er et interface, som indeholder een metode

17 NOEA2009Java-kursus – GUI med Swing MouseListener Metoder

18 NOEA2009Java-kursus – GUI med Swing MouseMotionListener Metoder

19 NOEA2009Java-kursus – GUI med Swing WindowListener Metoder

20 NOEA2009Java-kursus – GUI med Swing Trin til oprette GUI applikation med event handling 1.Oprette GUI klasse > Hvordan skal applikationen se ud. 2.Oprette Event Listener klasse (en klasse som implementere det passende listener interface) > Override alle metoder i interfacet > Dvs. implementer de metoder der betyder noget og måske tomme implementeringer for dem, der ikke betyder noget 3.Register listener objektet komponenten > Objektet er en instans af listener klassen i step 2 > Brug add Listener metoden på komponenten

21 NOEA2009Java-kursus – GUI med Swing Mouse Events Eksempel (page #1) import java.awt.*; import java.awt.event.*; public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener { TextField tf; public MouseEventsDemo(String title){ super(title); tf = new TextField(60); // Register event listener to the event source addMouseListener(this); } //continued...

22 NOEA2009Java-kursus – GUI med Swing Mouse Events Eksempel (page #2) // Displays GUI public void launchFrame() { /* Add components to the frame */ add(tf, BorderLayout.SOUTH); setSize(300,300); setVisible(true); } // Implement methods of event listener interface public void mouseClicked(MouseEvent me) { String msg = "Mouse clicked."; tf.setText(msg); } //continued...

23 NOEA2009Java-kursus – GUI med Swing Mouse Events Eksempel (page #3) public void mouseEntered(MouseEvent me) { String msg = "Mouse entered component."; tf.setText(msg); } public void mouseExited(MouseEvent me) { String msg = "Mouse exited component."; tf.setText(msg); } public void mousePressed(MouseEvent me) { String msg = "Mouse pressed."; tf.setText(msg); } //continued...

24 NOEA2009Java-kursus – GUI med Swing Mouse Events Eksempel (page #4) public void mouseReleased(MouseEvent me) { String msg = "Mouse released."; tf.setText(msg); } public void mouseDragged(MouseEvent me) { String msg = "Mouse dragged at " + me.getX() + "," + me.getY(); tf.setText(msg); } //continued...

25 NOEA2009Java-kursus – GUI med Swing Mouse Events Eksempel (page #5) public void mouseMoved(MouseEvent me) { String msg = "Mouse moved at " + me.getX() + "," + me.getY(); tf.setText(msg); } // Main method public static void main(String args[]) { MouseEventsDemo med = new MouseEventsDemo("Mouse Events Demo"); med.launchFrame(); }

26 NOEA2009Java-kursus – GUI med Swing Close Window Eksempel (page #1) import java.awt.*; import java.awt.event.*; class CloseFrame extends Frame implements WindowListener { Label label; CloseFrame(String title) { super(title); label = new Label("Close the frame."); this.addWindowListener(this); } //continued...

27 NOEA2009Java-kursus – GUI med Swing Close Window Eksempel (page #2) void launchFrame() { setSize(300,300); setVisible(true); } // Implement methods of listener interface public void windowActivated(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowClosing(WindowEvent e) { setVisible(false); System.exit(0); } //continued...

28 NOEA2009Java-kursus – GUI med Swing Close Window Eksempel (page #3) public void windowDeactivated(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowOpened(WindowEvent e) { } // Main method public static void main(String args[]) { CloseFrame cf = new CloseFrame("Close Window Example"); cf.launchFrame(); }

29 NOEA2009Java-kursus – GUI med Swing Adapter klasser Hvorfor adapter klasser? > Ellers implementere en masse tomme metoder i et interface > Det er kun nogle af metoderne i event listener interfacet, der interessante i situationen Adapter klasser > Indbygget i Java > Implementer alle metoder i event listener interfaces med mere end en metode > Implementerer tomme metoder

30 NOEA2009Java-kursus – GUI med Swing Adapter klasser: Close Window Eksempel import java.awt.*; import java.awt.event.*; class CloseFrame extends Frame{ Label label; CFListener w = new CFListener(this); CloseFrame(String title) { super(title); label = new Label("Close the frame."); this.addWindowListener(w); } // Irrelevant kode udeladt //continued...

31 NOEA2009Java-kursus – GUI med Swing Adapter klasser: Close Window Eksempel class CFListener extends WindowAdapter { CloseFrame ref; CFListener( CloseFrame ref ){ this.ref = ref; } public void windowClosing(WindowEvent e) { ref.dispose(); System.exit(1); }

32 NOEA2009Java-kursus – GUI med Swing Inner Classes Klasse der er erklæret indeni en anden klasse Hvorfor inner classes? > Gør programmer simplere > Specielt ved event handling > Forudsætter høj kobling

33 NOEA2009Java-kursus – GUI med Swing Inner Classes: Close Window Eksempel import java.awt.*; import java.awt.event.*; class CloseFrame extends Frame{ Label label; CloseFrame(String title) { super(title); label = new Label("Close the frame."); this.addWindowListener(new CFListener()); } //continued...

34 NOEA2009Java-kursus – GUI med Swing Inner Classes: Close Window Eksempel void launchFrame() { setSize(300,300); setVisible(true); } class CFListener extends WindowAdapter { public void windowClosing(WindowEvent e) { dispose(); System.exit(1); } //continued...

35 NOEA2009Java-kursus – GUI med Swing Inner Classes: Close Window Eksempel public static void main(String args[]) { CloseFrame cf = new CloseFrame("Close Window Example"); cf.launchFrame(); }

36 NOEA2009Java-kursus – GUI med Swing Anonyme Inner Classes Inner classes uden navn Hvorfor anonyme inner classes? > Simplifisere koden yderligere > Specielt i event handling

37 NOEA2009Java-kursus – GUI med Swing Anonyme Inner Classes: Close Window Eksempel import java.awt.*;import java.awt.event.*; class CloseFrame extends Frame{ Label label; CloseFrame(String title) { super(title); label = new Label("Close the frame."); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ dispose(); System.exit(1); } }); } Dette er den normale måde at gøre på i Java GUI programmering