DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.

Slides:



Advertisements
Lignende præsentationer
Sådan laver Du et POWER POINT program.
Advertisements

Introduktion til Javascript – Grundlæggende Webdesign, F2004. Introduktion til Javascript.
Web 2.0 Teoretisk viden.
Notation Oversigt Kapitel 18.
DIEB9.1 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter • Typiske komponenter • Arkitektur for en GUI.
Kursusgang 9 Oversigt: Sidste kursusgang Principper for visuelt design
Formularer (Access, del 3)
07 – Kort om OO Introduktion.
Velkommen Lars Johansson ProjectForce. Program: Lidt omkring Athena IT-Group A/S Introduktion til ProjectForce – Microsoft Sharepoint Lidt teori omkring.
NetBeans Installation og brug.
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 ­
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
11.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Processer Oversigt, principper og teknikker Kapitel 11.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
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.
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
Stig Irming-Pedersen ASP.NET MVC Partner Copenhagen Software.
GP 9, 10/ Grundlæggende programmering Forår 2002 Forelæsning 9 onsdag 10/ kl. 9:15 – 12:00.
Hidtil har det været besværligt og tidskrævende at oprette værktøjer og tilhørende reservedele. Man kunne ikke gennem værktøjets navn/nummer se hvilke.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
To måder at overføre objekt- referencer mellem processer (1) Via naming service - interface RMISolver (2) Som parametre til fjernprocedurekald - interface.
Claus Brabrand, ITU, Denmark Mar 17, 2009Projekt: “Visualisering” Claus Brabrand [ ] ( “FÅP”: First-year Project Course, ITU, Denmark )
Fundamentale datastrukturer
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Opgaver Klassen Container Layout-manager Event-håndtering.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
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,
Repetition: Introduktion til OOP med C# og .NET
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
DIEB3.1 Kursusgang 3 Oversigt: Sidste kursusgang Design og dialognotationer ­ Fra analyse til design (Dix) ­ Notation: state transition networks (STN)
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design interaktionselementer Analysedokumentet.
DWDK – øvelsestime 3 CSS – let the fun begin!!. Tilgængelige slides Disse slides ligger på mit public drev
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
Interaktive knapper Web-udvikling med FrontPage 2003 RHS - Informationsteknologi.
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.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DIEB6.1 Kursusgang 6 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Indledende Programmering Uge 6 - Efterår 2006
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.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
 Jens Bennedsen 2001Multimedie programmering10C.1 Brugergrænseflader Swing.
Forelæsning Uge 13 – Torsdag
Abstraktioner.
”Avanceret” Programmering
Tre lags arkitektur.
Dokumentation.
Forelæsning Uge 13 – Mandag
Fusionsprocesser i stjerner
Præsentationens transcript:

DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

DIEB7.2 Sidste kursusgang HCI designmetode: opsummering ­ Aktiviteter ­ Resultater ­ Designdokument User-Centred design ­ Participatory design ­ Contextual design ­ Kontekstuelt interview Systemer til samarbejde ­ Et andet syn på IT-systemer ­ Eksempel: Maritim Communicator ­ Eksempel: Umpire Signalling System ­ Teorier om samarbejde Identificer behov Etabler krav Generer design Byg interaktiv version Evaluer design Udgangspunkt Resultat: Endeligt produkt

DIEB7.3 Opgaver 1.Færdiggørelse af analysedokumentets del om brugergrænsefladen 2.Færdiggørelse af designdokumentets del om brugergrænseflade-komponenten

DIEB7.4 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

DIEB7.5 Programmering af brugergrænseflader Lektion 1: Tegn-orienteret terminal i 1980’erne: Brugergrænsefladen for et simpelt administrativt system udgjorde 75-80% af den samlede kode Brugergrænsefladens forholdsmæssige del blev ikke mindre i de første grafiske brugergrænseflader Eksempel:

DIEB7.6 Værktøjer til udvikling og implementering af HCI-design Formålet med værktøjer til implementering af brugergrænseflade: reducere omfanget af programmering Værktøjerne skal kunne håndtere to væsentlige krav: ­ Uafhængighed af specifik programmering af hver enkelt stykke hardware (f.eks. skærm) ­ Håndtering af flere uafhængige applikationer, som udføres samtidigt (f.eks. i forskellige vinduer) Eksempler på løsninger på disse krav: ­ Client-server: serveren styrer skærm, mus, tastatur osv. og har en "abstrakt terminal" for hver tilknyttet klient-applikation. ­ X Windows: klient-applikationer kommunikerer direkte med serveren, serveren holder også styr på display information (fonte osv.), hvilket minimerer netværkstrafik, og der er en separat window manager, som kontrollerer klienter og løser konflikter. Bogen: oversigt over typer af værktøjer

DIEB7.7 Applikation: klassisk struktur En interaktiv applikation er basalt set bruger-drevet: Brugeren gør noget, og systemet reagerer I klassisk GUI-programmering håndteres dette gennem en event-løkke (kaldes også read- evaluation løkke) Denne løkke kører i applikationen Løkken venter på en event. Når den kommer, udføres en af casene i switch-sætningen Simpel struktur, men kompliceret når der er mange events, og når de enkelte events er komplicerede do read(event); // venter switch(event) { case event1: process1; case event2: process2; … case eventn: processn; } while true;

DIEB7.8 Alternativ struktur Der er et centralt program, som modtager alle events Hver event aktiverer en metode i en eller flere specifikke applikationer Applikationerne definerer selv, hvad der skal ske, når en bestemt event forekommer Dette defineres gennem en såkaldt callback-metode, hvis navn er defineret af det centrale program (i eksemplet: ModtagBesked) Se på objekterne og deres samspil Giver en meget simplere programstruktur Modtager Sket ModtagBesked SkafForandring Broadcaster Forandrings- BeskedTilAlle 1 0..m Mønster: Abonnement på tilstandsskift Problem: Fleksibel modifikation af komponenter Løsning: Adskillelse af ansvar gennem indkapsling OOA&D, afsnit 11.6 og 14.3

DIEB7.9 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing ­ Tre dele ­ Applet ­ Udførelse ­ Simpel komponent ­ Simpel event-håndtering

DIEB7.10 Oversigt over Java Swing Oprindeligt var GUI-programmering i Java baseret på Abstract Window Toolkit (AWT). De fleste AWT-komponenter er specialiseringer af Component Med Java 2 indførtes Java Foundation Classes (JFC) – GUI-delen af JFC kaldes ”Swing” Næsten alle Swing-komponenter er specialiseringer af JComponent, der er en specialisering af AWT's Container-klasse Swing er et stort og kompliceret bibliotek – de mest brugte klasser Denne del af kurset giver en oversigt og introduktion, som sætter jer i stand til at ­ lave en enkel GUI-komponent ­ sætte jer ind i de mere komplekse dele

DIEB7.11 Java Swing Består basalt set af: Et stort antal komponenter Eksempel: en knap En manager til håndtering af layout Eksempel: knapperne er placerede på en bestemt måde En mekanisme til håndtering af events Eksempel: der trykkes på en knap Anvendelse: Fra et Java program, hvor man håndkoder GUI’en (det vi gør) Et grafisk værktøj, som genererer Java-kode og kald af Swing (GUI Builder)

DIEB7.12 Applet En applet er den simpleste form for GUI-element Det er et lille program Programmet kan udføres i en web-browser Begrænsede muligheder af hensyn til sikkerhed En applet er en specialisering af klassen JApplet Har ikke nogen main-del I stedet en specifikation af init-metoden (defineret i JApplet) Swing og AWT bibliotekerne tilknyttes

DIEB7.13 Udførelse af en applet (A) En applet erklæres som en klasse: Applet1 Ved højreklik på klassen kan der vælges: Run Applet Der kommer et vindue op, hvor det vælges, hvor applet’en skal udføres. Vælg: Appletviewer Der kommer et Appletviewer- vindue op, hvori output fra udførelsen ses

DIEB7.14 Hvad sker der? (1) JFrame er den primære container for en Swing-baseret applikation. Figuren viser dens elementer (has-a relation) Alle objekter, der er knyttet til en JFrame, håndteres af et aggregeret JRootPane-objekt For at tilføje en komponent til en JFrame specificerer vi, hvilken af JRootPane’ens panes, komponenten skal placeres i. Som regel tilføjer vi til contentPane, og det sker ved at kalde: myJFrame.getContentPane().add(myComponent); De forskellige panes i figuren er variable i klassen JRootPane Metoden getContentPane() giver referencen til contentPanen JApplet har også en JRootPane

DIEB7.15 Hvad sker der? (2) JLabel er en klasse Dens konstruktor tager et tekststreng som input og genererer en etikette med den tekst: new JLabel(”Applet!”) Denne etikette er input til metoden add, og etiketten placeres på contentPanen

DIEB7.16 Udførelse af en applet (B) En applet kan også udføres i en web-browser – vælg visning i web-browser Her udføres den i Netscape

DIEB7.17 Udførelse af en applet (C) Applet1 kan også udføres fra kommandolinien: java Applet1c Men det kræver meget ekstra i form af main, objekter osv. To væsentlige objekter ­ applet ­ frame

DIEB7.18 Applet-metoder Definerede i klassen JApplet og overskrives i en applet definition: ● init( )Kaldes automatisk for at udføre den første initialisering af en applet, herunder også opsætning af layout. Defineres altid. ● start( )Kaldes hver gang applet’en kommer til syne i web- browseren. Tillader applet’en at starte sin normale operation, specielt det der standses af stop( ). Kaldes også efter init( ). ● stop( ) Kaldes hver gang applet’en bevæges ud af syne i web-browseren. Gør det muligt for applet’en at standse ressourcekrævende operationer. Kaldes umiddelbart før destroy( ). ● destroy( )Kaldes når applet’en fjernes fra siden. Bruges til at frigøre ressourcer, når applet’en ikke længere bruges

DIEB7.19 Applet-metoder (2) Applet-metoderne kan ses og tilgås i den menu, der kommer op i vinduet, når vi udfører vores applet Stop og Start kan udføres flere gange

DIEB7.20 Simpel komponent: en knap Knappen er en specialisering af JButton Der genereres to knapper De tilføjes til contentPane Placering reguleres af layout (mere om dette senere)

DIEB7.21 Håndtering af events Hvad sker der, når vi trykker på en knap? Det bestemmer vores program – i det foregående program skete der intet Det gør det enkelt at definere kodestumper, som skal udføres som respons på bestemte events – for eksempel at der trykkes på en knap Disse kodestumper er callback-metoderne

DIEB7.22 Simpel event-håndtering Der defineres en fælles ActionListener (bl) Den knyttes til begge knapper med JButton’s addActionListener() metode I ActionListener definerer metoden actionPerformed, hvad der skal ske, når der trykkes på knappen Bemærk casting af parameteren e til JButton (den generelle klasse)

DIEB7.23 Hvad sker der? Når der trykkes på en knap, skrives dens navn i tekstfeltet

DIEB7.24 Status Brugt nogle basale komponenter ­ Knap ­ Tekstfelt Prøvet simpel event-håndtering Næste gang Layout-manager Komponenter