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

Relevanta dokument
Java-concept och Swing. Swing low, sweet chariot

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

Mer om grafiska komponenter. Händelsestyrda program

Lab5 för prgmedcl04 Grafik

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

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

Grafiska komponenter.

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

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

Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap

Lösningsförslag. 1 Lösningsförslag. Uppgift 1

TDDC76 - Programmering och Datastrukturer

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

OOP Objekt-orienterad programmering

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

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

Klasshierarkier - repetition

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

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

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

JUnit. Ska kompletteras med kodexempel på JUnit. DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012

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

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

1 Grafiska komponenter

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

OOP Objekt-orienterad programmering

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

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

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

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

Föreläsning 5. Föreläsning 5. Klasser och objekt. Klasser och objekt. Klasser och objekt

Laboration 15 Grafiskt användargränssnitt

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

27. GUI Programming. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

DAT043 - Föreläsning 7

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

Arv och Grafiska Användargränssnitt

OOMPA 2D1359 Föreläsning 8

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

PROGRAMMERINGSTEKNIK TIN212

Föreläsning 13 Innehåll

Föreläsning 5. Föreläsning 5

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

Föreläsning 4. Klasser och objekt

Rita Egna Bilder, Timer

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

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

Exempel på användning av arv: Geometriska figurer

WINDOWS PRESENTATION FOUNDATION LEKTION 1

Klasshierarkier. Klasser kan byggas på redan definierade klasser

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

Konstruktion av klasser med klasser

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

5 Användargränssnitt. 5.1 AWT och Swing

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

public class BoundedCounter {

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

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

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

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

Lektion Händelsehanterare

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

Projekt 2 XL. Observer-mönstret

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

Principles of subclasses. Objekt-orienterad programmering och design Alex Gerdes, 2018

Grafiska användargränssnitt i Java

Föreläsning 2, vecka 8: Repetition

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Labbinstruktioner för Java/Swing

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Föreläsning 5. När skall man använda implementationsarv? När skall man använda implementationsarv?

Laboration 4: Game of Life

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

Tentamen FYTA11 Javaprogrammering

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

Akronymer. CD5130 OOP, fk. Mjukvarumönster. Mjukvarumönster. Mjukvarumönster, forts. Mjukvarumönster, forts

FactoryCast HMI. Premium & Quantum PLC. Applets

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

Kursombud. Objektorienterad modellering och diskreta strukturer / design. Agile? Designprinciper EDAF10 EDA061. Lennart Andersson. Grupper för projekt

Frames, menyer och GUI-program

Grafiska användargränssnitt i Java

Ingenjörsfirman Stéen Java Sida 1 av 1

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

Föreläsning 15: Repetition DVGA02

Grafiska användargränssnitt i Java

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

TENTAMEN: Objektorienterad programutveckling, fk. Läs detta! Uppgifterna är inte ordnade efter svårighetsgrad.

DAT043 - föreläsning 8

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

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

Konstruktion av klasser med klasser

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

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

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

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

Transkript:

SMD091 Lektion 9 Inkapsling Lite repetition Grafik 1 2 Gränssnitt Definition och Implementation Sammansättning... Definition...är ofta det bästa sättet att använda funktionalitet i andra klasser. Ratt Motor Implementation...bygger på har en relationer mellan klasser. En bil har en ratt En bil har en motor En bil har en förare Bil ratt motor förare Förare 3 4 Arv att hitta nåt gemensamt! Arv är en public class Rectangle implements Shape { protected double height; protected double width; public Rectangle(double h, double w) { height = h; width = w; return 2.0 * (height + width); public double getheight( ) { return height; public double getwidth( ) { return width; public class Square extends Rectangle { public Square(double side) { super(side,side); return 4.0 * width; public interface Shape { public double getperimeter( ); public double getheight( ); public double getwidth( ); 5 6 1

Arv Arv public class Rectangle implements Shape { protected double height; protected double width; public Rectangle(double h, double w) { height = h; width = w; return 2.0 * (height + width); public double getheight( ) { return height; public double getwidth( ) { return width; public class Square extends Rectangle { public Square(double side) { super(side,side); return 4.0 * width; public interface Shape { public double getperimeter( ); public double getheight( ); public double getwidth( ); public class Rectangle implements Shape { protected double height; protected double width; public Rectangle(double h, double w) { height = h; width = w; return 2.0 * (height + width); public double getheight( ) { return height; public double getwidth( ) { return width; public class Square extends Rectangle { public Square(double side) { super(side,side); return 4.0 * width; public interface Shape { public double getperimeter( ); public double getheight( ); public double getwidth( ); 7 8...TYP, ba, då rå! Typen på referensvariabler Objekt av typen Rectangle har även typen Shape. Objekt av typen Circle har även typen Shape. Objekt av typen Square har även typen Rectangle och Shape! Shape Tidigare...samma eller senare typ... Typkedja 1: Shape Rectangle Square Typkedja 2: Shape Circle Rectangle Square Circle Senare Det referensvariabeln refererar till måste ha samma eller en senare typ än variabeln själv. 9 10 Grafik i Java Grafik i Java......är enkelt!...bygger på att sätta ihop grafiska objekt....följer ofta samma grundmönster: 1. Skapa grafiskt objekt 2. Placera det på rätt ställe 3. Registrera ett objekt för att få händelser 4. Ta hand om de händelser som kommer 11 12 2

Komponenter (arvsträd) Exempel Namn Component Container Button TextArea Label Window Lite senare skall vi: Skriva ett grafiskt program där man med fyra knappar lägger till namn i en lista. Dialog 13 14 Vad ligger i vad? frame textarea panel button1 button2 button3 button4 15 16 Hacka! Syrepaus 1. Skapa grafiska objekt 17 18 3

Att placera grafiska objekt... BorderLayout...kan vara stökigt....finns det hjälp för, sk LayoutManagers. North BorderLayout FlowLayout GridLayout GridbagLayout CardLayout mfl... West Center South East 19 20 BorderLayout FlowLayout Dessa minimeras. North West Center East Max 5 komponenter Default för! South Denna maximeras. 21 22 FlowLayout GridLayout Column 1 Column 2 Column 3 Component 4 Component 5 Component 6 Oändligt antal komponenter kan läggas in. De minimeras till storleken. 23 24 4

GridLayout GridBagLayout Column 1 Column 2 Column 3 gridx, gridwidth Row 0 Column 0 Column 1 Column 2 Comp 1 Component 2 Component 4 Component 5 Component 6 För ett fixt antal komponenter i ett rutnät. Alla komponenter får samma storlek: Storlek = samma som största komponenten gridy, gridheight Component 3 Component 4 Component 5 25 26 GridBagLayout CardLayout gridx, gridwidth Column 0 Column 1 Column 2 Row 0 Comp 1 Component 2 gridy, gridheight Component 3 Component 4 Component 5 Ungefär som GridLayout, men komponenterna kan använda flera rader eller kolumner. Överkurs!!! Layouts Layout number 1 27 28 CardLayout Layouts Layout number 1 En komponent syns i taget. Man byter dem emellan. 29 30 5

har BorderLayout som standard. Lägg som Center. (Maximeras!) har FlowLayout som standard. Komponenterna läggs in en efter en. Lägg som South. (Minimeras!) 31 32 Hacka! BorderLayout FlowLayout 2. Placera grafiska objekt 33 34 Control View Namn Button Registrera addactionlistener Ny Händelse Användaren gör nåt actionperformed Användaren klickar Ny Händelse Användaren gör nåt actionperformed Användaren klickar 35 36 6

Hacka! Denna vecka Gör klart lab 2! Skicka mig ett mail med länken till er kurssida! Börja projektet! Kom och fråga om det är nåt! 3 & 4. Händelser På onsdag några längre grafikexempel! 37 38 7