Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

Relevanta dokument
Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

2D1339 Programkonstruktion för F1, ht 2004

2D1339 Programkonstruktion för F1, ht 2003

Övning 3. Datateknik A, Java I, 5 poäng

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

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

ID1004 Laboration 3, 5-6 November 2012

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

JAVA Mer om klasser och objektorientering

TUTORIAL: KLASSER & OBJEKT

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

DD1342 Programkonstruktion för F1, ht 2007

2D1342 Programkonstruktion för F1, ht 2006

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

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

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

2D1339 Programkonstruktion för F1, ht 2003

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Lab5 för prgmedcl04 Grafik

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Malmö högskola 2008/2009 CTS

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

Tentamen i Programmeringsteknik MN

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Applets med komponenter

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

Lite logik. Kap 6: Sid 2

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

FactoryCast HMI. Premium & Quantum PLC. Applets

Laboration 4: Digitala bilder

4.4 Swing ett interaktivt grafiskt gränssnitt

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Exempel på användning av arv: Geometriska figurer

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

Tentamen, EDAA20/EDA501 Programmering

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

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

Laboration A Objektsamlingar

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin

TENTAMEN OOP

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

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

Tentamen FYTA11 Javaprogrammering

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

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

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

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

OOP Objekt-orienterad programmering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Laboration 3 GUI-programmering

Tentamen. Grundläggande programmering i Java A 5p, DTAA

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Föreläsning 3-4 Innehåll

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

Lösningsförslag tentamen FYTA11 Java

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Del A (obligatorisk för alla)

2 b) Följande finns definierat: import java.awt.*; public class Uppgift1b public static void main(string[] mupp) Color färg = Color.blue; Bil[] bilar

Tentamen, EDAA10 Programmering i Java

Tentamen OOP

LÖSNINGSFÖRSLAG TENTAMEN

PROGRAMMERINGSTEKNIK TIN212

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

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

OOP Omtenta

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Java, klasser, objekt (Skansholm: Kapitel 2)

Chapter 4: Writing Classes/ Att skriva egna klasser.

Rita Egna Bilder, Timer

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

Att skapa en bakgrundsbild och använda den i HIPP

Övningar Dag 2 En första klass

Objektorienterad programmering i Java I

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

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

Klasser och objekt. Henrik Johansson. August 20, 2008

Transkript:

Datateknik A, Syfte: Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Att läsa: Lektion 2 Uppgifter: Inlämning: 3 st Sker via inlämningsuppgifter i WebCT Lycka till!

Uppgift 1 Översikt Denna uppgift går ut på att skapa en enkel Applet med en tillhörande HTML-sida. Syftet med uppgiften är att få prova på att skapa en egen Applet, som sedan kan läggas ut på en hemsida för andra att beskåda. Vidare får du bekanta dig med Javas API-dokumentation. Uppgift Du ska skapa en Applet som du ska döpa till Uppgift1 och således spara i en fil med namnet Uppgift1.java. I din Applet ska du sen prova på att använda olika metoder för att rita på den yta Appleten äger. När du är färdig med din Applet ska du lägga ut den på din hemsida. Använd nedanstående mallar för att skapa din Applet och din HTML-sida. Applet: import java.awt.*; import java.applet.*; public class Uppgift1 extends Applet { public void paint(graphics g) { } } HTML-sidan: <html> <applet code="uppgift1.class" width="200" height="200"> </applet> </html> Inom de matchande klamrarna i metoden paint() skriver du sen din kod för att rita i Appleten. Jag har använt namnet Uppgift1 men du kan välja något annat, kom bara ihåg att spara koden i en fil med samma namn som klassen. Höjden och bredden på Appleten kan du givetvis ändra i HTML-filen om du vill. Ta sedan en titt i API-Dokumentation över klassen Graphics för att se vilka olika metoder som finns tillgängliga för att rita i appleten. Bläddra ner på sidan tills du kommer till en tabell som heter Method Summary. Där hittar du alla de publika metoder som kan anropas på Graphics-objektet (som metoden paint() tar som argument). Robert Jonsson Sida 1

Olika exempel är följande: drawline(int x1, int y1, int x2, int y2) som ritar ut en linje mellan punkterna (x1, y1) och (x2, y2). fillrect(int x, int y, int width, int height) som ritar en fylld rektangel med övre vänstra hörnet i punkten (x, y) och som är width pixlar bred och heigth pixlar hög. draw3drect(int x, int y, int width, int heigth, boolean raised) som ritar en upphöjd rektangel med en 3D effekt och har samma parametrar som fillrect men som dessutom har en boolean som reglerar om rektangeln ska vara upphöjd (true) eller nedsänkt (false). För att kunna se effekten måste en färg annan än svart användas. drawstring(string str, int x, int y) som skriver ut den text som finns i strängen str med början på punkten (x, y). Ritytan i en applet är uppdelad i punkter (pixlar) ordnade i ett koordinatsystem. Övre vänstra hörnet har koordinaten (0,0). Så för att t.ex. rita en linje som sträcker sig från detta hörn och 100 pixlar utefter den vänstra kanten, samt en 100 pixlar lång linje 50 pixlar ut från vänstra kanten skriver du följande kod i paint(): g.drawline(0, 0, 0, 100); g.drawline(0, 50, 0, 100); För att rita en fylld rektangel som är 75 pixlar bred och 150 pixlar hög och med övre vänstra hörnet i punkten (110, 25) skriver du: g.fillrect(110, 25, 75, 150); För att rita en upphöjd rektangel som är 60 pixlar bred och 50 pixlar hög och med det övre vänstra hörnet i punkten (10, 120) skriver du: g.draw3drect(10, 120, 60, 50, true); För att skriva ut texten Övning 2 på ritytan med början i punkten (80, 15) skriv: g.drawstring("övning 2", 80, 15); Du använder alltså objektet g (som är av typen Graphics) för att anropa metoderna. Och anrop görs som nämnts tidigare i lektionerna med punktnotation. Alltså namnet på objektet (som i detta fall är g), följt av en punkt, följt av den metod som ska anropas. Därefter anger du eventuella parametrar metoden behöver. För att ändra färgen på dina figurer använder du metoden setcolor() som tar ett Colorobjekt som argument. Ett nytt Color-objekt skapar du genom att skriva: new Color(int r, int g, int b) där int r, int g och int b motsvarar RGB-värdet på den nya färgen (0-255). Robert Jonsson Sida 2

Exempel på hur man byter till olika färger: g.setcolor(new Color(0, 0, 0)); // byter färg till svart g.setcolor(new Color(255, 255, 255)); // byter färg till vit g.setcolor(new Color(0, 255, 0)); // byter färg till grön g.setcolor(new Color(0, 0, 255)); // byter färg till blått g.setcolor(new Color(255, 0, 0)); // byter färg till rött g.setcolor(new Color(128, 10, 128)); // byter färg till??? När du satt färgen så gäller den för alla figurer som kommer efter i koden för färgbytet. Så ska alla figurer ha olika färger måste du byta färg för varje objekt. Vill du förändra bakgrundsfärgen i din Appleten måste du lägga till följande metod i klassen: public void init() { setbackground(new Color(255,0,0)); } Bakgrundsfärgen blir nu röd. Du kan även använda en av de fördefinierade färgerna i klassen Color. För att hitta åt vilka dessa färger är tittar du i API-dokumentationen för klassen Color (leta efter Field Summary ). För att använda någon av dessa färger skriver du Color.färg (där färg är någon av de giltiga färgerna). För att publicera appleten på Internet behöver du givetvis ett konto för detta. Här på Mittuniversitetet har du i och med att du registrerats på en kurs fått tillgång till ett konto (H:) i studentportalen (mina filer). Där finns en mapp med namnet public_html där du, om du vill, kan prova att lägga din html-fil samt.class -fil. Adressen till din hemsida blir http://portal.miun.se/~ditt_användarnamn. Du kan givetvis även köra din Applet lokalt på datorn. Antingen öppnar du din HTML-fil i en webbläsare eller så använder du dig av appletviewer. Om du har följt exemplen ovan så bör din Applet se ut som bilden till höger. Krav För att uppgiften skall betraktas som godkänd krävs det att du använder minst fem metoder (i Graphics-objektet) att rita på. Några av figurerna ska dessutom vara i olika färger. Försök gärna att skapa något riktigt t.ex. ett självporträtt, ett hus, en bil, träd etc och inte enbart massa meningslösa figurer, ägna dock ingen längre tid för detta. Koden ska även vara dokumenterad, där du i paint()-metoden beskriver vad som sker. Robert Jonsson Sida 3

Uppgift 2 Översikt Du ska i denna uppgift prova på att använda BufferedReader för att läsa in data från tangentbordet till program. Indata ska lagras i variabler i ditt program och sedan skrivas ut på skärmen. Uppgift Du ska skriva en klass med namnet Uppgift2 som ska innehålla en main()-metod. Detta program ska skapa en saga för ett barn. Programmet utgår från en färdigskriven saga, men vissa ord ska bytas ut mot sådant som användaren får skriva in. Den saga som du ska utgå ifrån är följande: Den lilla myran xx1xx Det var en gång en liten, liten myra som bodde med sin xx2xx och sina xx3xx syskon i en myrstack, vid en stor xx4xx i skogen. Den lilla myran hette xx1xx. För det mesta brukade xx1xx och hans syskon arbeta med att bära in xx5xx och xx6xx till stacken, men idag var det xx7xx, så därför var xx1xx ledig. Orden som är överstrukna är de ord programmet ska fråga användaren efter. Totalt är det sju inmatningar användaren ska göra. Dessa inmatningar ska programmet spara i separata variabler för att sen skrivas ut på skärmen enligt sagan ovan. De ord programmet ska fråga efter är: 1. Namnet på myran 2. Vem myran bor med 3. Hur många syskon myran har 4. Var någonstans i skogen myrstacken finns 5. Vad myran och syskonen bär in till stacken 6. Vad myran och syskonen mer bär in till stacken 7. Vad det är för speciell dag som gör att myran är ledig Krav För att uppgiften ska betraktas som godkänd krävs att du använder ett objekt av klassen BufferedReader när du frågar användaren efter data. All inmatning ska göras innan sagan skrivs ut på skärmen. Utskrift ska ske med System.out.print och/eller System.out.println. Robert Jonsson Sida 4

Uppgift 3 Översikt Du ska i denna uppgift prova på att skapa en klass med namnet Kurs och en testklass som skapar objekt av klassen Kurs. Syftet är att lära dig skriva klasser, skapa objekt av klasser och anropa publika metoder på det skapade objektet. Uppgift Skriv en klass som ska representera kurser som ges här på Mittuniversitetet. Klassen ska innehålla information om kursens kurskod, kursnamn, antal poäng och en beskrivning. Detta ska lagras som instansvariabler i klassen. Alla instansvariabler ska använda String som datatyp. Instansvariablerna får endast vara åtkomliga inom den egna klassen. Det ska finnas möjlighet att sätta nya värden på klassens alla instansvariabler. Detta ska implementeras via publika set()-metoder för alla instansvariabler. Det ska även finnas en metod som skriver ut all information om kursen på skärmen på ett snyggt och strukturerat sätt. Du ska även skriva en testklass som skapar två olika kurser (objekt av klassen Kurs). För det ena objektet ska du hårdkoda värden direkt i testklassen. Ex) java.setkursnamn("java I"); För det andra objektet ska du fråga användaren efter kursens data. Detta ska ske med hjälp av klassen JOptionPane och metoden showinputdialog(). Data som returneras från showinputdialog ska sparas i lokala variabler i main()-metoden för att sen skickas som argument till andra objektets set()-metoder. Tillsammans med denna uppgift ska du skicka in ett Word-dokument (eller annat) där du ritat ett UML-klassdiagram över klassen Kurs. Utgå ifrån de exempel som finns i kursboken samt i Lektion 2. Döp dokumentet till UML uppgift 3. Robert Jonsson Sida 5