TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3



Relevanta dokument
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

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

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

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

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

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

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

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

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

ID1004 Laboration 3, 5-6 November 2012

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

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

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

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

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

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

Lektion Händelsehanterare

DAT043 - föreläsning 8

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

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

Laboration 3 GUI-programmering

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

OOP Objekt-orienterad programmering

Lab5 för prgmedcl04 Grafik

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

Rita Egna Bilder, Timer

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

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

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Algoritmer. Två gränssnitt

Laboration 4: Game of Life

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

Försättsblad till skriftlig tentamen vid Linköpings Universitet

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

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

OOP Objekt-orienterad programmering

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

Introduktionsmöte Innehåll

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

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Föreläsning 15: Repetition DVGA02

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

PROGRAMMERINGSTEKNIK TIN212

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

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

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Sökning och sortering

EDAA01 Programmeringsteknik - fördjupningskurs

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Försättsblad till skriftlig tentamen vid Linköpings Universitet

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

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

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

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Facit Tentamen TDDC (7)

Programmering för språkteknologer II, HT2014. Rum

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

Tentamen i Objektorienterad programmering

Exempel på användning av arv: Geometriska figurer

Föreläsning REPETITION & EXTENTA

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

Programmering för språkteknologer II, HT2011. Rum

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

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

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Tentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

TDDC Terminologi Uppdaterad Fö #1

Objektorienterad programmering

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

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

Mer om grafiska komponenter. Händelsestyrda program

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

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

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

SORTERING OCH SÖKNING

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Imperativ programmering. Föreläsning 4

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Försättsblad till skriftlig tentamen vid Linköpings Universitet

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TDDC30 Programmering i Java, datastrukturer och algoritmer

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Transkript:

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1

Laboration 3 Visualisering av sortering Uppgiften - Implementera och visualisera olika sorteringsalgoritmer. Det som skall sorteras är samlingar av heltal. Syftet är att öva på Javas standardklasser för grafiska komponenter. Vanliga sorteringsalgoritmer. Ett befintligt kodskelett finns. 2

Laboration 3 Visualisering av sortering (forts.) Kodskelettet Följande är klasser är helt eller delvis implementerade: AnimationStarter (main) Animator Algorithms AlgorithmHandler AlgorithmStatus AnimationWidget Examination ButtonPanel DataSet SortAlgorithm BubbleSortAlgorithm ImprovedBubbleSortAlgorithm DataOrder Källkoden för hela det resulterande programmet, som ett arkiv En diskussion (1/2-1 A4) där ni diskuterar hur bra olika algoritmer är vid olika förutsättningar. En tidsuppskattning för labben samt de reflektioner kring uppgiften som har dykt upp. 3

Laboration 3 Visualisering av sortering (forts.) 4

Laboration 3 Visualisering av sortering (forts.) Vad skall göras Uppgift 1 Komplettera AnimationWidget.java Uppdatera AlgorithmHandler.java Skall gå att visualisera BubblesortAlgorithm Uppgift 2 Visa flera algoritmer samtidigt Lägg till ImprovedBubbleSortAlgorithm Uppgift 3 Implementation av nya algoritmer InsertionSortAlgorithm, QuickSortAlgorithm och ShellSortAlgorithm Använd befintliga swap och cmp. Bonus-del (Frivillig) 5

BubbleSortAlgorithm.java public class BubbleSortAlgorithm extends SortAlgorithm { public BubbleSortAlgorithm() { super("bubble sort"); public void sort() { for (int i = 1; i < getelementcount() ; ++i) { for (int j = getelementcount()-1; j >= i; --j) { if (cmp(j, j-1) < 0) { swap(j, j-1); Notera att: Heltalen som ska sorteras är dolda i SortAlgorithm cmp(i, j): Ligger element i och j rätt ordnade? swap(i, j): Byt plats på element i och j. getelementcount(): Ger storleken på indatan. 6

Debugger i Eclipse Ett avancerat verktyg för att lokalisera buggar i kod Behovet uppstår när kodbasen är stor och spårutskrifter inte hjälper längre Med debuggern kan du Pausa programmet och kika på variabler Ändra på variablers värden manuellt Köra koden rad för rad och se vad som händer Pausa, ändra koden och köra vidare! 7

Laboration 3 Grafisk uppbyggnad JFrame Fönster Innehåller komponenter som knappar, textfält och annat JComponent Basklassen för en komponent Kan ritas ut, ser olika ut beroende på syftet Alla komponenter innehåller följande metod: public void paintcomponent(graphics g) Denna metod bestämmer hur komponenten ritas ut, genom att använda Graphics-objektet 8

Exempel på grafik - Trianglar Skapa ett program som ritar ut trianglar med hjälp av en JComponent som agerar som rityta. Komponenten ska ha en association till en Triangel klass. Trianglarna skall ritas upp i ett fönster Klassen JFrame beskriver ett fristående fönster på skärmen. Själva bilden ska vara en subklass till JComponent Graphics-objektet är nyckeln Är som programmets pensel Måste ges till komponenten från fönstret repaint() begär att få låna penseln paintcomponent( ) ritar ut när vi får låna penseln 9

Grafik med Swing-paketet Swing är ett standardbibliotek med klasser som används för att skapa grafiska gränssnitt. Det mesta ligger i följande paket import javax.swing.*; import java.awt.*; Klasser som implementerar vanliga grafiska komponenter Fönster: JFrame, JWindow Knappar: JButton, JRadioButton, JCheckBox, m.fl. Textfält: JTextField, JTextArea, m.fl. 10

Exempel på grafik - Sommarbild Kom ihåg att void paint(graphics g) anropas då Container-klassen ritas upp. void paintcomponent(graphics g) anropas för att rita ut själva komponenten. void repaint() anropas för att be om en ny utritning av komponenten, som kommer ske nån gång snart. Använd denna istället för att försöka anropa paint direkt. 11