Föreläsning 7. Grafiska användargränssnitt



Relevanta dokument
Föreläsning 10. ADT:er och datastrukturer

Föreläsning 15: Repetition DVGA02

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Våga Visa kultur- och musikskolor

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Utvärdering av föräldrakurs hösten 2013

1. Att lyssna 1. Titta på den som talar. 2. Tänk på vad som sagts. 3. Vänta på min tur att prata. 4. Säg det jag vill säga. 1.

Vad roligt att ni har valt att bjuda varandra på den här timmen.

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

MÄSSHANDBOK ENTREPRENÖRSKAP PÅ RIKTIGT 2016 KRONOBERG

TENTAMEN: Design och konstruktion av grafiska gränssnitt DAT215

Objektorienterad programmering

Malmö högskola 2007/2008 Teknik och samhälle

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Sätt att skriva ut binärträd

Författare Dokumenttyp Säkerhet Version. Urban Wicklander Test Rapport Extern A1. Testing Qubino

Förslag på lektionsupplägg: Dag 1- en lektionstimme

Föreläsning 3: Händelsestyrda program och användargränssnitt

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Företagare i debatten. Vem vågar och vilka lyssnar?

NÄR MAN TALAR OM TROLLEN och några andra talesätt

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit

1. Skriv = eller i den tomma rutan, så att det stämmer. Motivera ditt val av tecken.

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

TDDC74 Programmering, abstraktion och modellering DUGGA 2

Övning: Dilemmafrågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Projektrapport EDA095

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

Förarbete, planering och förankring

Spel som interaktiva berättelser

Föreläsning 3.1: Datastrukturer, en översikt

MagiCAD El & Rör. Varför MagiCAD och varför 2D/3D? Kollisionskontroll. MagiCAD El

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Föreläsning 4: Poster

Kursutvärdering Ämne: SO Lärare: Esa Seppälä/Cecilia Enoksson Läsåret Klass: SPR2

8-4 Ekvationer. Namn:..

Lärarguide vid grupparbete

NT- GYMNASIET TEKNIK 1 RAGNE.WAHLQUIST@JARFALLA.SE

Tvärtom Hur du vinner framgång, blir lycklig och rik genom att göra precis tvärtom

Kursutvärdering. Samhällskunskap A

Bonusmaterial till Lära och undervisa matematik från förskoleklass till åk 6. Ledning för att lösa problemen i Övningar för kapitel 5, sid

Objektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Lokalt företagsklimat 2008 Enkätundersökning med företagare i - Katrineholm

Lokalt företagsklimat 2008 Enkätundersökning med företagare i - Uddevalla

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Övningar Dag 2 En första klass

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Lathund, till Photo Story, för skräckslagna lärare

Lära känna skrivbordet

9-1 Koordinatsystem och funktioner. Namn:

1. Bekräftelsebehov eller självacceptans

SUNE Tidningen Hästfynd nr 5, 2004

ITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter

Enkäten inleds med några frågor om demografiska data. Totalt omfattar enkäten 85 frågor år år år. > 60 år år.

Vägskälsdag 2 februari 2014

HÖGSKOLAN I KALMAR Institutionen för teknik Erik Loxbo LABORATION I PLC-TEKNIK SEKVENSSTYRNING AV TRANSPORTBAND SIMATIC S7 - GRAPH

Skolplaneenkät 2015 Elever grundskola

Laboration 2 RSS Läsare

Lektion Händelsehanterare


HexaFlip. Kravspecifikation

Plugga/slappa/leva/plugga/slappa/leva/plugga/slappa/leva. Carina Bäckström & Ola Olefeldt

Att handleda framtidens kollega. Birgitta Fläckman

Kursutvärderingsformulär

Liten introduktion till akademiskt arbete

Låt eleverna öva på att dra slutsatser om textens handling genom att leta ledtrådar i texten.

Lathund för värderingsverktyg för en tillgänglig utbildning

75059 Stort sorteringsset

Spelet i sig är inte avancerat men projektet ställer en del krav på implementationen bland annat:

Vi hoppas att ni har glädje av berättelsen om Undra och Lollo som ska träna sina krångelhänder så de blir hjälparhänder!

Föreläsning 6: Introduktion av listor

Multiplikation genom århundraden

19. Skriva ut statistik

Trygghet 9 Empati 6 Hänsyn 3 Bemötande 2 Tolerans 2 Förhållningssätt 2 Omsorg 2 Respekt 2 Kamrat 1 Ärlighet 1 Omtanke 1 Skyldighet 1 Rättighet 1

För att använda sifferkrypto använder man en rektangel om 5 gånger 6 bokstäver.

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

SVERIGES 18-ÅRINGAR HAR FÅTT EN VIKTIG UPPGIFT

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

Livsstil och hälsa - nytt tema i Grön Flagg tidigare tema : Kretsloppet

Vi är Talangfabriken. Bilaga till riktlinjer för spelare och föräldrar i Huddinge Hockeys Ungdomsverksamhet. Sid1

Arbetsmöte 1. Vi arbetar med vår värdegrund

Bättre Självförtroende NU!

Skapa minnen av framtiden. Henrik Svensson

Karlsängskolan - Filminstitutet

Spänning. Sluten krets, kopplingsschema, seriekoppling, parallellkoppling.

2 SPD - ett realtidsystem för distansundervisning

Introduktion till arv

Tidigt uppföljningssystem Skövde

SA91 Forskarstuderandes handledare

Jämföra, sortera tillsammans reflektera!

Conversionista 404-studie, våren 2011

Bruksanvisning DAB One

Världskrigen. Talmanus

Vill du arbeta som egenerfaren kamratstödjare inom socialpsykiatrin?

Mimer Akademiens arbete med barnens matematikutveckling Ann S Pihlgren Elisabeth Wanselius

2. Hur tycker du att stämningen i sjuan i stort har förändrats under året glädje, trygghet, gemenskap och kommunikation?

Transkript:

Föreläsning 7 Grafiska användargränssnitt

För att göra grafiska användargränssnitt: Måste man veta hur man skapar komponenterna i ett GUI och vilka det finns. Till lab 3 räcker det med att känna till de mest grundläggande som JFrame, JPanel, JButton och JLabel. Måste man veta hur man arrangerar komponenterna i ett fönster. Man kan använda sig av Måste man veta hur interaktionen med användaren sker. 2

Att tänka på när man gör designen på ett användarcentrerat GUI Låt användaren ha kontrollen Gör gränssnittet - behagligt och lätt att använda - effektivt, snabbt vid användning - lätt att lära sig - roligt att använda - klart (inte dunkelt) så att användaren kan fokusera på vad den ska göra Gör det svårare och inte lättare att göra misstag Förvåna inte användaren 3

Problemställning: Vi ska göra ett GUI som kan användas vid röstning. Användaren ska kunna rösta ja eller nej. Antalet som hittills röstat ska visas i fönstret och likaså skillnaden mellan ja- och nejröster. Analys: GUI:t måste ha två knappar, en för att rösta ja och en för att rösta nej. Vidare måste det ha två etiketter (label) för det totala antalet röster respektive differensen mellan ja- och nej-röster. När man trycker Ja ska det totala antalet röster och differensen båda öka med ett. När man trycker Nej ska det totala antalet röster öka med ett och differensen minska ett. 4

Design: I design-steget ska vi bestämma hur vi ska lösa problemet. Vi kan börja med att göra en skiss på hur GUI:t kan se ut: Ja -7-7 Totala antalet röster: 15 15 Avsluta Nej Fyra fält (paneler). När man trycker Ja ska siffran i andra fältet öka med ett, när man trycker Nej ska den minska med ett. I det tredje fältet ska antalet tryckningar på ja/nej-knappar registreras. Trycker man på avsluta-knappen avslutas programmet. 5

Design: Nu kan vi börja fundera på vilka komponenter vi kan tänkas behöva för att bygga upp GUI:t. I ramen (JFrame) kan vi lägga en panel (JPanel) som är arrangerad enligt GridLayout-modellen (4 rader, 1 kolumn). Den första raden innehåller i sin tur en panel som är arrangerad enligt GridLayout-modellen (1 rad, 2 kolumner). Vi behöver 3 knappar (JButton) för Ja, Nej och Avsluta. Vi behöver också 2 etiketter (JLabel) för texterna i mittenfälten. Slutligen behöver vi något som minns hur många gånger vi tryckt på Ja- respektive Nej-knapparna. 6

Design: Nu kan vi börja fundera på vilka klasser vi måste göra och vilka vi kan återanvända (Swing, AWT). JFrame: Vi får göra en subklass till JFrame som blir själva GUI:t (Voting). JPanel: Vi gör en subklass till JPanel som bygger upp GUI:t (ControlPanel). Denna panel använder i sin tur flera andra paneler för att arrangera komponenterna. JButton: Eftersom vi vill att det ska hända något när vi trycker på knapparna kan vi inte använda JButtonklassen direkt utan vi får göra subklasser till den där vi kopplar på lyssnare som kan göra rätt sak vid tryckning. Gör tre subklasser (YesButton, NoButton, QuitButton. 7

JLabel: För de två etiketterna kan vi använda JLabel-klassen direkt. Tänk på att när vi trycker på någon av Ja- eller Nej-knapparna så ändras texten i etiketterna. Dessa knappar måste alltså ha etiketterna som peer -objekt. Slutligen måste vi ha en klass som minns antalet tryckningar annars vet vi ju inte vad som ska skrivas ut i mittenfälten. Gör en klass (kalla den Memory) som har instanvariabler för summan av antalet röster och differensen mellan ja- och nej-röster. Jaoch Nej-knapparna måste ha en Memory-instans som ett peer -objekt. 8

Design: Nu är vi redo att skissa på ett UML-diagram. JFrame JPanel JLabel Voting ControlPanel Memory JButton QuitButton YesButton NoButton 9

Lab 3 I lab 3 kan man resonera på liknande sätt, dvs analys- och design-faserna blir ungefär som i problemexemplet. I lab 3 kommer man också att behöva en Memory - klass med likartad funktion som i problemexemplet, den ska alltså minnas vad som tryckts in på räknaren. Vi kan tänka ut i förväg vad den här Memory-klassen ska innehålla och skriva ner detta med ord (ej kod). Vi får då något som kallas en abstrakt datatyp (ADT), dvs en beskrivning i ord av en samling data och operationer på denna data för att spara, komma åt och manipulera denna. 10