DIEB9.1 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter • Typiske komponenter • Arkitektur for en GUI.

Slides:



Advertisements
Lignende præsentationer
13 SEPTEMBER 2012 TIPS OG TRICKS OM KOMMUNEPLANTILLÆG 1 Brugerseminar 2012 Tips og tricks om kommuneplantillæg Hanne Klit Johansen, Byplanlægger, afdeling.
Advertisements

CoDriver Afslut 1 Tastaturet Her kan du få lidt at vide om tastaturet og tasternes funktion. Klik på knapperne nederst til venstre for at bladre frem og.
Funktioner Grundbegreber.
1 Vil du give en fuldmagt?       Hvis du vil have, at en anden skal kunne handle på dine vegne i en digital løsning, kan du give en digital.
Videregående pc-vejledning Modul 04: Windows-elementer 60+Bornholm.
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.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
Videregående pc-vejledning Modul 12: Tekstbehandling 2 60+Bornholm.
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”.
Aktivering af link til passwordliste i SFX Anders Vestergaard, DBC, 19. februar 2013 OBS: Inden passwordliste aktiveres i SFX skal liste være oprettet.
Formularer (Access, del 3)
Trivselsundersøgelse og ledelsesevaluering
SEO PÅ AU.
Skal du digitalisere en fuldmagt, du har fået på papir fra en borger?
GP 4, 19/ Grundlæggende programmering Efterår 2001 Forelæsning 4 onsdag 19/ kl. 9:15 – 12:00.
GP9, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 9 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Design af brugerflader11.1 Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
Design af brugerflader12.1 Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
Design af brugerflader8.1 Kursusgang 8 Oversigt: Sidste kursusgang Design ­ Design og beskrivelse ­ En simpel notation Eksempel på design af dialogen ­
Kursus om borger.dk og brugen af digital signatur
1 Lektion 18: Priser i en åben økonomi 1.Økonomiske nyheder 2.Repetition 3.Dagens pensum 4.Hvad kan I få eksamensspørgsmål i? 5.Næste lektion 6.Tilbagemelding.
Introduktion til Access (Access, del 1)
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
Oprettelse af tabeller (Access, del 2)
Rapporter (Access, del 5)
CFU 1 Center for Undervisningsmidler PowerPoint-kursus Enkle præsentationer.
Arv Idéen i arv et at kunne genbruge gennem generalisering
Søgning & sortering Intro søgning Lineær søgning Binær søgning
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Oversigt, principper og teknikker
13.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Funktionskomponent Oversigt, principper og teknikker Kapitel 13.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
Introduktion til arkitektur design Arkitektur design handler om at få en forståelse for, hvordan et system skal organiseres og designe den overordnede.
1 Bestanddele i en Windows form-løsning GUI kontroller (eng.: controls) & komponenter (eng.: components) Almindelige egenskaber, metoder & hændelser for.
Dagens gang Sidste uges opgaver Design af grænseflader
09.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Kriterier Oversigt, principper og teknikker Kapitel 9.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 USB Gennemgang af installering af USB driver til ICT. Er fortaget på Windows XP.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
Grunde til at jeg elsker dig
Claus Brabrand, ITU, Denmark Mar 17, 2009Projekt: “Visualisering” Claus Brabrand [ ] ( “FÅP”: First-year Project Course, ITU, Denmark )
Fundamentale datastrukturer
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Opgaver Klassen Container Layout-manager Event-håndtering.
Objekter og klasser Rasmus D. Lehrmann DM
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
Interaktionsformer En begrebsmæssig model kan understøttes med forskellige interaktionsformer Interaktionsformen fastlægger centrale egenskaber: Hvordan.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Oprettelse af tabeller (Access, del 2)
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design interaktionselementer Analysedokumentet.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
DIEB12.1 Kursusgang 12 Feedback fra en usability-evaluering Oversigt: Sidste kursusgang Opgaver Feedback Are Usability Reports Any Good? Alternativer til.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge45 GUI.
DIEB6.1 Kursusgang 6 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
Dagens gang Komponenter Projektetablering Opgave i komponenter til næste gang.
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
 Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing.
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner.
Formularer (Access, del 3). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller Vi.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Dokumentation.
Præsentationens transcript:

DIEB9.1 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter • Typiske komponenter • Arkitektur for en GUI

DIEB9.2 Sidste kursusgang Oversigt: • Klassen Container ­ Grundbegreb ­ JFrame • Layout-manager ­ Layout-managere i Swing ­ 4 layout-managere ­ Sammenligning ­ JPanel ­ Eksempel: vindue til et administrativt system • Event-håndtering ­ Grundbegreber ­ Listener ­ Håndtering af en event ­ Listener som inner class ­ Navne på elementer ActionEvent ActionListener // kode til håndtering // af en event Button

DIEB9.3 Opgaver 1.Fortsæt arbejdet med vinduet fra jeres projekt. Prøv at lave dele af vinduet som paneler, der sættes sammen. Læg først vægt på layout'et. Lav det som et Java-program ligesom eksemplet med FlightReservation. 2.Prøv med forskellige kombinationer af de 4 basale layouts. Se hvordan vinduet varierer. 3.Udbyg programmet fra opgave 1 med event-håndtering. Fokuser på brugergrænsefladen og dens samspil med funktionerne. Men lad være med at bruge meget tid på funktionernes virkemåde. Brug eventuelt funktioner, som bare returnerer det samme resultat. 4.Programmer et mere kompliceret vindue fra jeres projekt. 5.Lav et vindue med et password-felt. Vink: Find JPasswordField i Javas JDK dokumentation på java.sun.com. Vinduet skal fungere på den måde, at hvis brugeren indtaster det korrekte password, så skrives der en tekst ud i et JTextField, og hvis det er forkert, skrives der en anden tekst ud. 6.Næsten alle Swing-komponenter er specialiseringer af Component. Denne klasse har en setCursor() metode. Find denne i JDK dokumentationen. Lav en applet eller applikation, hvor I benytter en af de andre mulige cursore.

DIEB9.4 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter ­ Specifikationer ­ Eksempel • Typiske komponenter • Arkitektur for en GUI

DIEB9.5 Beskrivelser af komponenter (1) • Gå ind på • Vælg API Specifications under Reference (til venstre) • Vælg version (J2SE 1.5.0) i den midterste del af vinduet

DIEB9.6 Beskrivelser af komponenter (2) • I det vindue, der så kommer frem, kan I: ­ Vælge den relevante package (vindue 1) og ­ Vælge den relevante klasse (vindue 2) • Beskrivelsen af klassen findes i vindue 3

DIEB9.7 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter • Typiske komponenter ­ Knapper ­ Tekst ­ Checkbokse ­ Andre • Arkitektur for en GUI

DIEB9.8 Knapper (1) • Der findes en række forskellige knapper • Menupunkter defineres også som knapper • Alle knapper er specialiseringer af AbstractButton, som er en generel mekanisme til selektering • BasicArrowButton er fra javax.swing.plaf.basic

DIEB9.9 Knapper (2) • De typiske knapper genereres enten navngivet eller anonymt • Pile-knapperne sættes ind i et separat panel jp, som så sættes ind i containeren cp

DIEB9.10 Knap-Gruppe (1) • Individuelle knapper kan kombineres i en button group • Hvert knap-objekt knyttes til et gruppe-objekt • Til en given button group kan der tilføjes objekter af enhver klasse, der er en specialisering af AbstractButton

DIEB9.11 Knap- Gruppe (2) • Knapperne i en button group virker med exclusive-or – dvs. at kun en af dem kan være aktiv ad gangen • Alle undtagen JButton viser dette

DIEB9.12 Tekstfelt • Der kan skrives i det • Det kan aflæses • Det kan gøres til et dokument, hvori ændringer kan aflæses løbende • Flere forskellige specialiseringer

DIEB9.13 Check- bokse (1) • Markere en on/off tilstand • Kan bruges enkeltvist (den normale funktion) eller i en gruppe

DIEB9.14 Checkbokse (2)

DIEB9.15 Andre komponenter (1) • Borders • ScrollPanes

DIEB9.16 Scrollbars • Hvordan laver jeg en scrollbar • Er det nødvendigt at implementere en listener for at få den til at fungere rigtigt

DIEB9.17 Andre komponenter (2) • Radioknapper • Combo-boks Drop-down liste • List-bokse

DIEB9.18 Andre komponenter (3) • Simple menuer • Sliders og progress bars

DIEB9.19 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter • Typiske komponenter • Arkitektur for en GUI ­ Problem: brugergrænseflade og funktion ­ Samhørighed og kobling ­ Model-view-controller ­ Application framework ­ Arkitektur i projekterne

DIEB9.20 Arkitektur for en GUI • Egenskaber ved klasser: ­ Høj samhørighed ­ Lav kobling ­ Eksempel: kunde og konto er én klasse • Hvorfor er det vigtigt? • Hvordan opnås det? • Opdeling (separation of concerns)

DIEB9.21 Generel løsning: Model-View-Controller • Generel løsning, som blev udviklet i tilknytning til Smalltalk • Eksempel: diagram i Excel • Separerer tre forskellige aspekter af en GUI for en given komponent ­ Model (og funktion): holder styr på komponentens tilstand (indirekte kommunikation: kan kun broadcaste til view og controller - stiplet) ­ View: den visuelle præsentation af en komponent (kan give besked til controlleren, f.eks. om musens position, da der blev klikket) ­ Controller: finder ud af, om komponenten skal reagere på en event, for eksempel et klik på musen

DIEB9.22 Java’s løsning • View og controller er slået sammen til en UI delegate • Vil gerne muliggøre mange-til- mange relation mellem model og UI delegate • Hvorfor kan MVC ikke dette? • Løses ved kun at bruge indirekte kommunikation begge veje

DIEB9.23 Eksempel (1) • Eksempel • Separering af forretningslogik og brugergrænseflade • Calc 1 ganger med modifier, mens Calc 2 lægger den til

DIEB9.24 Eksempel (2)

DIEB9.25 Eksempel (3)

DIEB9.26 Application Framework • En stærk måde at lave genbrug på • Et application framework er en klasse eller en samling af klasser, som løser et bestemt problem • Man bruger framework’et ved at nedarve fra en af klasserne og så overskrive nogle af metoderne • En bestemt type application frameworks er designede til at reagere på events. De kaldes også control frameworks • Java Swing er et application framework (control framework)

DIEB9.27 Arkitektur i projekterne • Hvordan påvirker den generelle grundarkitektur brugergrænsefladens opbygning og relation til andre komponenter • Dette handler om overgangen fra systemdesign til programdesign • Hvordan kan grundstrukturen realiseres i Java, specielt for brugergrænsefladen • Bank-eksemplet i OOA&D- bogen

DIEB9.28

DIEB9.29 Status • Gennemgang af typiske komponenter • Oversigt over GUI-struktur: ­ Model-View-Controller ­ UI delegate ­ Application framework ­ Arkitektur i projekterne • Læs mere: Swing-bøger Næste gang: • En større opgave ­ Ingen forelæsning ­ Hjælpelærer og lærer til rådighed 4 timer ­ Prøv at anvende beskrivelser og teknikker fra kurset

DIEB9.30 Videre forløb Hidtil fire aktiviteter: • Kravspecificering: ­ krav og behov ­ foreløbigt klassediagram og brugsmønstre omsættes i en papirprototype ­ afprøves med brugere • Resultater fra OOA&D: ­ klassediagram ­ brugsmønstre • Design: ­ interaktionsrum ­ præsentationsmodel ­ interaktionselementer (vinduer) • Implementering i Java: ­ herunder programdesign • Evaluering er den næste aktivitet ­ Formålet med denne aktivitet: fastlægge brugbarhed ­ Indhold: finder problemer i systemet ­ Hvordan kan evaluering foregå i et Dat1/Inf1-projekt: en af to større øvelser i kurset Identificer behov Etabler krav Generer design Byg interaktiv version Evaluer design Udgangspunkt Resultat: Endeligt produkt