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



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

Mer om grafiska komponenter. Händelsestyrda program

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

Programmeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt

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

ITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius

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

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

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering

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

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

Lab5 för prgmedcl04 Grafik

Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

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

Lektion Händelsehanterare

OOP Objekt-orienterad programmering

Kort om klasser och objekt En introduktion till GUI-programmering i Java

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

OOP Objekt-orienterad programmering

Denna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers. Exempel: FlowLayout. Klassen FlowLayout

Properties. Användbara metoder som kan anropas i propertychanged:

Laboration 15 Grafiskt användargränssnitt

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna

Lösningar för tenta 3 DAT043,

Rita Egna Bilder, Timer

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers

Projekt 2 XL. Observer-mönstret

Föreläsning 13: Swing (GUI), händelser, timer

Java-concept och Swing. Swing low, sweet chariot

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Applets med komponenter

Arv och Grafiska Användargränssnitt

MVC-mönstret. model-view-control i Swing

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

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert AWT. Paket för hantering av grafik

Tentamen i Objektorienterad programmering

DAT043 - föreläsning 8

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Arv, Grafiska användaregränssnitt och Inre klasser! Förelasning 12!! TDA540 Objektorienterad Programmering!

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

Laboration 4: Game of Life

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

Laboration 24 Databasen MySQL och java

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Grafiska användargränsnitt i Java. Föreläsning 7 Innehåll. Använda klasspaketet Swing. Klasspaket i Java. Grafiska användargränsnitt i Java

kl

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl

Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter

LiTHehack? Här? lithehack se koma Tisdagar och torsdagar

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

Lösningsförslag till tentamen

Grafiska användargränssnitt i Java

Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material.

Händelsestyrda program

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

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

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

GUI-program med Swing

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

SMD091 Lektion 9. Definition. Inkapsling. Lite repetition. Grafik. Gränssnitt Definition och Implementation. Sammansättning... Implementation.

725G61 - Laboration 8 Ett enkelt GUI. Sahand Sadjadee och Johan Falkenjack

Lösningsförslag till tentamen

Lösningsförslag till tentamen

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

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Laboration 3 GUI-programmering

ID1004 Laboration 3, 5-6 November 2012

Föreläsning 15: Repetition DVGA02

lgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Lösningsförslag till tentamen

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

För att hitta filen gå till mappen NetBeansProjects. Välj undermappen med rätt projekt, och sedan undermapp dist. Där ligger.jar-filen.

Lösningar till tentamen i EDAF25

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Lösningsförslag till tentamen

F7: Användargränssnitt, interaktivitet och grafik. Carl Nettelblad

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Modellsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

Grafiska komponenter.

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

Tentamen FYTA11 Javaprogrammering

Programstyrd / händelsestyrd

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Föreläsning 14: Grafik & mera händelsehantering

Lösningar till tentamen i EDAF25

Lösningsförslag till tentamen

Transkript:

(2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller

(2 september 2015 F3.2 ) Sekventiella program Vad karaktäriserar ett sekventiellt program? Programmet utför instruktionerna i den ordning de står i programmet och operationer kan ofta utföras direkt utan fördröjning. De flesta program ni har sett hittills har varit mestadels sekventiella. Relativt lätta att analysera och hitta fel i.

(2 september 2015 F3.3 ) Händelsestyrda program Vad karaktäriserar ett händelsestyrt program? Programmet överlåter kontrollen till en mekanism som fångar och reagerar på händelser av olika slag. Man skapar så kallade lyssnare som anropas när en given händelse inträffar. Omvänt kontrollflöde mot sekventiella program.

(2 september 2015 F3.4 ) Lyssnare Lyssnare är objekt med specifika callback-metoder. Ofta defineras lyssnar-typer som så kallade interface (mer om dem senare i kursen) med en eller flera metoder som man implementerar. Javas standardbibliotek definerar lyssnar-typen ActionListener (i paketet java.awt.event) med metoden void actionperformed(actionevent event). ActionListener används för att reagera på händelser från fördefinerade komponenter som timer, knappar, textrutor och många fler.

(2 september 2015 F3.5 ) ActionListener För att förvandla klassen ExampleWindow från gårdagens föreläsning till en lyssnare av typen ActionListener krävs följande åtgärder: Importera ActionListener och ActionEvent: import java.awt.event.*; Deklarera att klassen är en ActionListener: public class ExampleWindow extends JFrame implements ActionListener Implementera metoden actionperformed: @Override public void actionperformed(actionevent e) {}

(2 september 2015 F3.6 ) Timer istället för loop och sleep När klassen är en lyssnare kan vi byta ut loopen mot en timer med följande kod: ExampleWindow ew = new ExampleWindow(); // window initialization Timer t1 = new Timer(2000, ew); // delay: 2000 ms, listener: ew t1.start(); Klassen Timer finns i paketet javax.swing.

(2 september 2015 F3.7 ) Gränssnittsstyrning med kontroller För att introducera interaktivitet i ett händelsestyrt program används vanligtvis något som kallas kontroller. De är komponenter som vanligtvis är synliga på skärmen och/eller kan manipuleras av användaren med hjälp av mus eller tangentbord. Ett urval från Java/Swing är: JButton - Klickbar knapp JTextField - Textruta för inmatning av text JLabel - Ettikett för visning av text

(2 september 2015 F3.8 ) Hantera händelser från kontroller För att lyssna efter händelser som t.ex. en kontroll mybutton ger ifrån sig skriver man: mybutton.addactionlistener(mylistener); Detta signalerar att den angivna lyssnaren ska bli notifierad via metoden actionperformed när kontrollen gett upphov till en händelse av något slag.

(2 september 2015 F3.9 ) Hantera händelser från flera olika kontroller i en lyssnare En och samma lyssnare kan lyssna efter händelser från mer än en källa. Detta leder till ett behov av att kunna avgöra vilken kontroll som orsakat en given händelse. Java/Swing möjliggör detta genom att ActionEvent-klassen som är parametern till actionperformed(actionevent e)-metoden håller reda på vilken kontroll som är källan till händelsen. Metoden e.getsource() returnerar en referens till det aktuella objektet. På så vis kan man implementera olika reaktioner på olika händelser.

(2 september 2015 F3.10 ) Ordna kontroller med rätt Layout För att bringa ordning i gränssnittet när man lägger till flera kontroller använder man oftast Layout-systemet. En Layout specificerar ett regelsystem för hur kontrollerna ska positioneras och dimensioneras i relation till varandra. De 2 vanligaste, och de enda som kommer användas i den här kursen, är FlowLayout och GridLayout. FlowLayout positionerar kontrollerna i följd efter varandra. GridLayout positionerar kontrollerna i ett rutmönster där man anger antal rader och kolumner.

(2 september 2015 F3.11 ) Nästa gång Nästa gång kommer fokus ändras helt då Tom introducerar en viktig problemlösningsmetod som heter rekursion. Den är en högst central del av kursen och vi rekommenderar starkt att ni inte missar den föreläsningen. Hoppas vi ses då!