Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02
|
|
- Klara Jonsson
- för 6 år sedan
- Visningar:
Transkript
1 Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02 Denna laboration är frivillig och syftar till att låta dig lära mer om grafik i java. Labben är ganska grundlig och går igenom vad du skall göra steg för steg. Den skall ej redovisas. 1 Katten igen Du skall nu arbeta med Katt.java och KattRitare.java som du använde i första inlämningsuppgiften. Detta lilla program ritar ut en katt i ett fönster genom att definiera klasserna KattRitare som ärver av JPanel och Katt som ärver av JFrame. KattRitare överlagrar metoden paintcomponent. Denna metod anropas så fort komponenten behöver ritas. Genom att ändra i denna kan man bestämma vad som skall ritas ut. Det var detta du gjorde förut. Som parameter till paintcomponent ges ett objekt g av klassen Graphics. Denna klass beskriver den rityta objektet har förfogande över i fönstret, och innehåller metoder för att rita saker där. Eftersom KattRitare ärver från JPanel är det en swing-komponent, och vi kan hantera den som en del av ett grafiskt användaregränssnitt. 1.1 Katt För att vi skall kunna titta på katten måste den ligga i ett fönster. Detta är vad Katt är. Denna klass ärver från JFrame som beskriver ett fönster. Kompilera och kör Katt.java, testa att ändra storlek på fönstret. Vad händer? Öppna nu upp Katt.java i emacs. I konstruktorn finner du följande rader: Container c = getcontentpane(); l = new KattRitare(); c.setbackground(color.white); c.setlayout(new FlowLayout() ); setsize(300,300); c.add(l); 1
2 setvisible(true); setdefaultcloseoperation(exit_on_close); Några av dessa rader skall vi titta närmare på. Den första raden använder en metod ärvd från JComponent för att ta reda på fönstrets sk. content pane. Alla top-nivå komponenter i swing har sådana, detta är ett objekt av typen Container som har som uppgift att hålla reda på underkomponenter. Raden c.setbackground(color.white); sätter bakgrundsfärgen i fönstret. Prova att ändra denna till någon annan färg. Syns något? Prova att ändra fönstrets storlek. Varför blir inte hela bakgrunden vit. Jo därför att en del av den upptas av komponenten l av klassen KattRitare som definierar sin bakgrund som vit. Titta i KattRitare.java! Raden setsize(300,300); sätter fönstrets storlek. Prova att ändra denna! Vad händer om du gör den större? Mindre? Vad händer ifall du kommenterar bort raden? c.add(l); lägger till vår KattRitare-komponent till fönstret. Om du tar bort raden läggs komponenten inte till fönstrets content pane, och syns alltså inte. Prova detta. setvisible(true); gör fönstret (din JFrame) synlig, ett swing-fönster är inte synligt, även om det har skapats. Man måste säga till att det skall visas explicit. Ta bort raden och se! 1.2 KattRitare Du har ju redan (i inlupp 1) varit inne i paintcomponent för KattRitare och ändrat på kattens utritningsprogramkod, så förhoppningsvis har du ett hum om hur den fungerar, eller så kan du med din nya programmeringserfarenhet lista ut vad de flesta satser gör. Vi skall dock kolla lite på konstruktorn i klassen KattRitare: setbackground(color.white); setpreferredsize(new Dimension(300,300) ); Den första raden känner du nog igen nu, den sätter bakgrundsfärgen. Du kan prova att ändra den om du vill. Den andra raden, setpreferredsize(new Dimension(300,300) );, anger komponentens storlek. Som du ser är det inte samma metod setsize som användes i 2
3 Katt. Detta eftersom Katt som ärvt av JFrame är ett fönster, och denna storlek kan vi sätta eftersom det är en topnivå-komponent. Underliggande komponenter däremot, som tex JPanel kan ibland göras beroende av storleken hos de komponenter de ligger i, och då kan man inte sätta någon fast storlek. Men man kan ange vilken storlek man skulle vilja att komponenten hade. Prova att ändra! Vad händer? 2 En katt som ändrar färg... Vi skall nu utöka vår katt lite genom att få kattens ögon att blinka i olika färger. För att göra detta måste vi ha ett attribut i vår katt-klass som talar om vilka färger som kattens ögon kan ha, samt ett som säger vilken färg som gäller just nu. Vi måste också ha en metod för att hämta färgen från katten, så att KattRitare kan rita ut denna. Vi börjar med attributen. En array är en bra datastruktur för att lagra en tabell av objekt. Tex olika färger. Skapa ett attribut Color[] colors; i katt-klassen. För att tala om vilken av alla färger i arrayen som skall användas gör måste vi ha ett heltal som talar om vilken index i arrayen som skall användas. Detta attribut skapas med int colorindex;. Nu kan vi gå in i konstruktorn i Katt och initalisera våra nya attribut. Lägg till följande: colors = new Color[3]; colors[0] = Color.blue; colors[1] = Color.green; colors[2] = Color.yellow; colorindex = 0; Den första raden skapar en array som kan inehålla tre objekt av klassen Color. Sedan lägger vi in färgerna blått, grönt och gult i tur och ordning. Till sist sätter vi colorindex värde till 0. Nu behövs det en metod för att ta reda på vilken färg som är den aktuella. Dvs vilken färg som colorindex pekar på. Skriv alltså en metod som ser ut enligt följande: public Color getcurrentcolor() return colors[colorindex]; 3
4 Denna returnerar en Color genom att ta den färg i arrayen som colorindex indexerar till. Just nu förändras ju inte colorindex någonstans, så den kommer alltid att vara 0 och den blå färgen kommer alltid att returneras, men det skall vi ändra på senare. Förstår du varför den blå färgen alltid returneras? Hur kan man ändra så att den gula alltid returneras? Din katt skall nu se ut såhär: import java.awt.*; import javax.swing.*; public class Katt extends JFrame private KattRitare l; Color[] colors; int colorindex; public Katt() Container c = getcontentpane(); l = new KattRitare(); c.setbackground(color.white); c.setlayout(new FlowLayout() ); setsize(300,300); c.add(l); setvisible(true); setdefaultcloseoperation(exit_on_close); colors = new Color[3]; colors[0] = Color.blue; colors[1] = Color.green; colors[2] = Color.yellow; colorindex = 0; public Color getcurrentcolor() return colors[colorindex]; public static void main(string[] arg) Katt k1 = new Katt(); 2.1 KattRitare För att förändra kattens ögon måste vi nu också ändra i KattRitare, så att detta ritas ut. 4
5 I paintcomponent använder g den färg som tidigare angivits med dess setcolor metod. Kolla vilken färg detta är! Nu skall vi, precis som i inlupp 1 och lägga in en ny sats som sätter färgen. Detta måste göras före vi ritar ut ögonen. I stället för att sätta ögonens färg till ett konstant värde vill vi ju fråga vår Katt viken ögonfärg den har för närvarande (kattens ögonfärg skall ju ändras). För att göra detta måste KattRitare känna till det Katt-objekt som äger den. KattRitare måste alltså innehålla ett attribut av klassen Katt. Lägg till satsen Katt katten; Nedanför de andra attributen i KattRitare. Nu kan KattRitare referera till ett objekt av klassen Katt. Men vi måste kunna sätta attributet också. Detta kan göras med en set-metod, men även genom konstruktorn. Nu skal du göra det genom att låta KattRitares konstruktor ta in ett objekt av klassen Katt och sätta attributet katten till detta. Gör om den standardkonstrktor som finns i KattRitare till en alternativ konstruktor som tar in ett Katt-objekt i stället. Sedan måste den naturligtvis sätta katten till detta. Det ser ut som följer: public KattRitare(Katt k) setbackground(color.white); setpreferredsize(new Dimension(300,300) ); // Sätter katten = k. katten = k; Nästa steg är att i paintcomponent ta reda på vilken färg kattens ögon har och sätta denna. Här finns det följande rader som ritar ut kattens ögon: g.filloval(60, 60, 10, 10); g.filloval(90, 60, 10, 10); // ögon Precis ovanför dessa behöver vi alltså sätta kattens ögonfärg. Hur tar man reda på denna? Jo, vi har ju redan i Katt definierat en metod som tar reda på detta, nämligen getcurrentcolor. Du kan alltså nu lägga till raden: g.setcolor( katten.getcurrentcolor() ); ovanför de satser som ritar kattens ögon. katten.getcurrentcolor() returnerar ju färgen som kattens ögon har och sedan sätts denna genom metoden setcolor hos obejktet g. Du skulle lika gärna kunna ha gjort: Color c = katten.getcurrentcolor(); g.setcolor( c ); 5
6 Förstår du varför dessa satser är likadana? I den senare mellanlagras färgen i en temporär variabel, c, medan den resulterade färgen skickas direkt in i setcolor i den förra. KattRitare.java borde nu se ut ungefär som nedan: import java.awt.*; import javax.swing.*; public class KattRitare extends JPanel Font f = new Font(Serif", Font.ITALIC, 18); Katt katten; public KattRitare(Katt k) setbackground(color.white); setpreferredsize(new Dimension(300,300) ); // Sätter katten = k. katten = k; public void paintcomponent(graphics g) super.paintcomponent(g); g.setcolor(color.black); g.drawrect(50, 50, 60, 60); // huvud g.drawrect(80, 225, 140, 5); // svans g.setcolor(color.white); g.filloval(20, 110, 120, 120); // vitt inne i kroppen g.setcolor(color.black); g.filloval(75, 75, 10, 10); // nos g.drawoval(20, 110, 120, 120); // rita kropp, kontur // Sätter kattens ögonfärg. g.setcolor( katten.getcurrentcolor()); g.filloval(60, 60, 10, 10); // ögon g.filloval(90, 60, 10, 10); g.setcolor(color.black); g.drawline(50, 50, 60, 30); // öron g.drawline(60, 30, 70, 50); g.drawline(110, 50, 100, 30); g.drawline(100, 30, 90, 50); g.setcolor(color.red); g.drawarc(60, 80, 40, 20, 180, 180); // mun g.setcolor(color.black); g.setfont(f); g.drawstring(mjava", 200, 50); 6
7 2.2 Tillbaka till Katt.java Nu har vi gjort förändringar i KattRitares konstruktor. Men denna används ju i Katt, därför kommer inte programmet att kompilera (eftersom Katt använder KattRitares standardkonstruktor). I stället för att använda KattRitares standardkonstruktor i Katts konstruktor skall vi använda den alternativa konstruktorn. Men denna tar ett Katt-objekt som inparameter, dvs vi måste på något sätt skicka in en referens till det Kattobjekt som konstruktorn hör till. Objektet måste alltså skicka in en referens til lsig själv, ungefär som att ge ut ett visitkort. Detta går med det reserverade ordet this. Om du inte kommer ihåg exakt hur this används, så kan man säga att this alltid refererar till det objekt man befinner sig i. För att tex använda ett attribut inuti en klass kan man antingen skriva endast attributnamnet, eller så kan man skriva this.attributnamn. Du skall alltså ta bort satsen l = new KattRitare(); och i stället lägga till l = new KattRitare(this);. Om du nu kompilerar klasserna och kör Katt så kommer katten att visas med blå ögon. Men de blinkar ju inte! Varför då? Jo, även om KattRitare frågar Katt om vilken färg den har, och får reda på att den är blå, så finns det ingenting som ändrar colorindex i Katt under programmets gång. Den kommer alltså alltid att vara 0 och indexera till första färgen i arrayen colors! 2.3 Animation För att kattens ögonfärg skall ändras kontenueligt behövs en metod som kör igång och sedan hela tiden ändrar colorindex så att den indexterar till olika färger. Denna metod måste även säga åt KattRitare att rita om sig, så att den nya färgen ritas. Skriv nu en metod i Katt som heter blink och som är deklarerad enligt: public void blink() while( true ) colorindex++; if( colorindex >= colors.length ) colorindex = 0; l.repaint(); 7
8 Eftersom uppdateringen av färger skall ske om och om igen så länge progammet är igång skall den ju innehålla en while-loop. Denna while loop håller på så länge villkoret innanför paranteserna är sant. Eftersom där står true som är det reserverade ordet för sant, och därför alltid är sant, så kommer det som står innanför while-loopen att utföras i evighet (eller så länge programmet kör). Så vad händer i loopen då? Jo först ökas colorindex med 1. Men eftersom colorindex skall indexera i en array som är av en viss storlek är det ju viktigt att den börjar om på 0 (det första elementet) när den har nått slutet. Detta åstadkoms med if-satsen. Där kollar man om colorindex är större än colors.length (som ju är arrayens storlek), i så fall är ju indexet större än arrayen och då skall det börja om från början igen. Alltså sätts colorindex till 0. Därefter måste man säga åt KattRitaren att rita om sig, annars sysn ju inte förändringen. Detta görs med metoden repaint som finns deklarerad i alla swingkomponenter (KattRitare ärver ju från komponenten JPanel och är alltså en komponent), alltså: l.repaint();. När metoden körs kommer den alltså att gå in i en loop som den inte kan ta sig ur där ändra den färg som ögonen skall ha och sedan rita om. Detta kommer att hålla på tills någon avbryter programmet. Nu är det bara ett par små saker kvar att göra. För det första måste ju metoden anropas någonstans ifrån. Detta görs i main genom att lägga till k1.blink(); (efter Katt k1 = new Katt();). Kompilera och kör Katt. Nu skall du se att ögonen blinkar. Tycker du att de blinkar för fort, eller för ojämt. Det är för att datorn försöker köra igenom loopen så snabbt den bara kan. Man kan lägga in en sats som försöker vänta en viss tidsrymd i loopen så går den långsammare. Detta görs med XThread.delay( 100 ); som finns i extrapaketet. (Det betyder att du även behöver lägga till import extra.*; längst uppe i Katt.java). 100 som står i parentesen anger hur många millisekunder programmet skall vänta innan det kör vidare. Du kan ändra detta till ett annat värde för att ändra hastigheten. Lägg nu till delay-satsen i loopen. Kompilera och kör Katten. Testa med att ändra antalet värdet i delay-satsen. Nu är din Katt färdig. Den borde se ut såhär: import java.awt.*; import javax.swing.*; import extra.*; 8
9 public class Katt extends JFrame private KattRitare l; Color[] colors; int colorindex; public Katt() Container c = getcontentpane(); l = new KattRitare(this); c.setbackground(color.white); c.setlayout(new FlowLayout() ); setsize(300,300); c.add(l); setvisible(true); setdefaultcloseoperation(exit_on_close); colors = new Color[3]; colors[0] = Color.blue; colors[1] = Color.green; colors[2] = Color.yellow; colorindex = 0; // Returnerar nuvarande färgen. public Color getcurrentcolor() return colors[colorindex]; // Loopar och blinkar. public void blink() while( true ) colorindex++; // Om indexet är utanför arrayen. Börja om. if( colorindex >= colors.length ) colorindex = 0; // Be KattRitare att rita om sig. l.repaint(); // Vänta ett slag. XThread.delay( 100 ); public static void main(string[] arg) Katt k1 = new Katt(); //Börja blinka. k1.blink(); 9
10 Till sist. Experimentera med Katt och KattRitare. Förstår du hur de fungerar och är relaterade till varandra? 10
Inlämningsuppgift 1 Programmeringsteknik MN1 vt02
Inlämningsuppgift 1 Programmeringsteknik MN1 vt02 Denna uppgift skall lösas individuellt och redovisas muntligt vid dator för läraren senast 2002-02-10. 1 Introduktionslaboration Uppgiftens syfte är att
Läs merKort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merProgrammeringsteknik II - HT18. Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt
Programmeringsteknik II - HT18 Föreläsning 6: Grafik och händelsestyrda program med användargränssnitt (och Java-interface) Johan Öfverstedt 18-09-28 1 Förra gången: Arv och klasshierarkier Vi såg hur
Läs merID1004 Laboration 3, 5-6 November 2012
18-okt-2012/FK ID1004 Laboration 3, 5-6 November 2012 Labben bör göras individuellt. Beräknad tid ca 2 timmar. Instruktionen antar att labben utförs i datasal, med hjälp av den integrerade utvecklingsmiljön
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Grafiskt användargränssnitt, Swing Layout och komponenter Göra
Läs merDenna vecka. Idag. Grafiskt användarsnitt. Vi kommer att se
1 F18-20-2006 Denna vecka Måndag: Ett komplext problem Tisdag: Lektion. Kväll: Essäfrågan distribueras via webben. Dead-line onsdag 17 maj, kl 12.00. Inlämning elektroniskt och på papper. Onsdag: Grafik
Läs merDetta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max 30p i denna halvtentamen Hjälpmedel:
Läs merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3
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
Läs merFöreläsning 14: Grafik & mera händelsehantering
TDA 545: Objektorienterad programmering Föreläsning 14: Grafik & mera händelsehantering Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafik läs kap 17 Viktigt i denna föreläsning: att rita
Läs merFöreläsnings 11 - GUI, Händelsestyrda program, MVC
Föreläsnings 11 - GUI, Händelsestyrda program, MVC Josef Svenningsson Tisdag 20/11 Boken Denna föreläsning går igenom följande sektioner i boken: 10.1 och 10.2 11.1 Notera att kapitel 11 inte finns i boken
Läs merRita Egna Bilder, Timer
Rita Egna Bilder, Timer Josef Svenningsson November 27, 2012 Grafik Varje gång ett fönster behöver ritas om, pga av att det flyttas eller varit övertäckt, anropas automatiskt en metod som har namnet paintcomponent.
Läs merDagens 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 )
(26 januari 2018 F3 1 ) 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 2 ) Arrayer En array är en datatyp
Läs merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3
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
Läs merITK:P1 Lektion 4. Lektion 4. Lektion 4. Att implementera en spelidé i Java. DSV Peter Mozelius
ITK:P1 Att implementera en spelidé i Java DSV Peter Mozelius import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Lektion4 extends JFrame implements ActionListener { final int
Läs merTvå designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 8 Två designmönster, MVC och Observer/Observable. Designrekommendation
Läs merDagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merUppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:
Att skapa en klass kvadrat Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här: public class Kvadrat { private int sida; Det var väl inte
Läs mer2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik
2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det
Läs merITK:P1 Föreläsning 4. Grafiska gränssnitt i Java. AWT-komponenter
ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering 1 DSV Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste åren I Java finns
Läs merTentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: 2:a september 200, klockan 8:30-12:30. Plats: V Ansvarig lärare: Katarina Blom, tel 772 10 0. Läraren besöker tentamen kl 9:30
Läs mer1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.
1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som
Läs merFö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 Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Läs merFöreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
Läs merObjektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Läs merLab5 för prgmedcl04 Grafik
Lab5 för prgmedcl04 Grafik Viktigt läs detta först:den här labblydelsen är ganska lång, detta betyder inte att labben tar lång tid.en hel del av lydelsen är anvisning om hur man går tillväga för att kunna
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Algoritmanalys, Ordo Sortering, Insertionsort
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs merGrafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter
Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter De komponenter som vi ska titta lite närmare på den här gången är paneler (JPanel), knappar (JButton), textfält (JTextField).
Läs merITK:P1 Föreläsning 8. Verktyget Javadoc. Kommentarer för Javadoc. Multimedia för spelkonstruktion
ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion 1 DSV Peter Mozelius Verktyget Javadoc De flesta program behöver dokumentation I Java finns ett verktyg som genererar HTML- dokumentation på ett enkelt
Läs merEDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Läs merTentamen i Objektorienterad programmering
CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Lördagen 12 mars 2011, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 0762/981014. Inga hjälpmedel. Lösningar
Läs merFöreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag
Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer
Läs merArv och polymorfi. Lite terminologi; Basklass eller superklass: En klass som fungerar som bas för vårt arv. Vi skapar nya klasser utifrån den.
Arv och polymorfi Arv och polymorfi är två centrala begrepp i objektorientering. Arvsmekanismen innebär att vi kan skapa nya klasser utifrån redan existerande klasser. Man gör detta med hjälp av nyckelordet
Läs merTentamen i Objektorienterad programmering E
CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA546 Tentamen i Objektorienterad programmering E Måndagen 8 mars 2010, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 1040. Inga hjälpmedel. Lösningar till
Läs merMalmö högskola 2007/2008 Teknik och samhälle
Laboration Gui Avsikten med denna laboration är att du ska träna på att bygga grafiska användargränssnitt. Spara dina resultat i paketet laborationgui. Längst bak i laborationen finns fullständiga lösningar
Läs merMer om grafiska komponenter. Händelsestyrda program
Layout Managers TDA143 I1 Programmerade system Föreläsning 14 (OH-bilder 10) Mer om grafiska komponenter. Händelsestyrda program Utplaceringen av komponenter i en behållare styrs med en Layout Manager.
Läs merRepetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material.
TDA 545: Objektorienterad programmering Repetitionsföreläsning 2: Quiz & problemlösning med swing Inget nytt material. Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag En quiz! tinyurl.com/tda545quiz
Läs merFöreläsning 1, vecka 8: Att förbereda sig för tentan
TDA 548: Grundläggande Programvaruutveckling Föreläsning 1, vecka 8: Att förbereda sig för tentan Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Idag: talar om tentan, förberedelse, exempel, mm. Inget
Läs merExempel på användning av arv: Geometriska figurer
(9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014
Läs merGrundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 18 Igår: Genomgång av dugga Rekursion Idag och på måndag: Om essän Lite, lite teori om konstanter Grafiska användargränssnitt Grundläggande
Läs merLaboration 15 Grafiskt användargränssnitt
Laboration 15 Grafiskt användargränssnitt Avsikten med denna laboration är att du ska träna på att skriva program som använder grafiskt användargränssnitt, dvs program som använder grafiska komponenter
Läs merVariabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.
Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och
Läs merFöreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015
Objektorienterad Programkonstruktion Föreläsning 3 9 nov 2015 Kursnämnd Namn kommer... UML: Klassdiagram UML: Relationer Ärver från superklass Implementerar gränssnitt Dubbelriktad eller oriktad relation
Läs merTENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET
UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt
Läs merTentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34
Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger
Läs merObjektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016
Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik
Läs merKungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Läs merTentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)
Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl
Läs merIntroduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public
Läs merLaboration 4: Game of Life
Laboration 4: Game of Life Programmerade system I1 Bakgrund: I denna laboration ska vi ägna oss åt Game of Life, vilket är en mycket enkel modell av en population organismer som kan leva, dö och fortplanta
Läs merTDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om
Läs merlgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a
// Lösningar till gammal tentamen // Uppgift 1 a /* Felet beror på att det är klassen på referensen som avgör vilka metoder man får köra på ett objekt, inte klassen på objektet. På rad 5 i klassen C har
Läs merEDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merLösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 110317 a) Sant. b) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser. c) Falskt. TCP är ett protokoll på transportlagret. d) Falskt. Binärsökning
Läs merLaboration 1 - Grunderna för OOP i Java
Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben
Läs merObjektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets
Objektorienterad programmering i Java Föreläsning 5 Kort om Java-Applets 1 Läsanvisningar Den här föreläsningen syftar till att ge en bild av vad en Java-Applet är och är ganska fristående från föregående
Läs merLaboration 24 Databasen MySQL och java
Laboration 24 Databasen MySQL och java Avsikten med denna laboration är att du ska hämta information ur en eller flera tabeller och visa resultatet i en JTable-komponent. Du ska ändra innehållet i tabellen
Läs mer2D1339 Programkonstruktion för F1, ht 2004
2D1339 Programkonstruktion för F1, ht 2004 Kontrollskrivning 1 Onsdag 24/11 2004 kl 11.15 12.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
Läs merLösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel
Lösningar till Fiktiv Tentamen på kursen 2D4135 Objektorienterad programmering, design och analys med Java vt2004 Teoridel T1) (4p) Förklara kort följande grundläggande begrepp inom objektorienterad programmering:
Läs mer"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde
Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande
Läs merDet ä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.
Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift
Läs merProgrammeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner
Programmeringsteknik och Matlab Övning 3 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merMalmö högskola 2008/2009 CTS
Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom
Läs merFöreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc
Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp
Läs merOOP Objekt-orienterad programmering
OOP F5:1 OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling Vi skall nu titta på ett exempel med myror. Varje myra har ett namn
Läs merJAVA Mer om klasser och objektorientering
JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det
Läs merDagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?
Programmeringsteknik och Matlab Övning 6 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merDagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?
Programmeringsteknik och Matlab Övning 2 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merFöreläsning 9-10 Innehåll
Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare
Läs merDI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Läs merLösningsförslag övning 2.
Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static
Läs merBankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
Läs merMalmö högskola 2007/2008 Teknik och samhälle
Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa
Läs merFöreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Läs merPROGRAMMERINGSTEKNIK TIN212
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:
Läs merLaboration 3, uppgift En klass för en räknare
Laboration 3, uppgift 1 3.1 En klass för en räknare Ursprungligen skriven av Erland Holmström. Magnus Myreen har uppdaterat vissa delar. Hösten 2014 Anvisningar: Programmet skall utformas enligt de principer
Läs mer2 b) Följande finns definierat: import java.awt.*; public class Uppgift1b public static void main(string[] mupp) Color färg = Color.blue; Bil[] bilar
Namn: Personnr: 1 2D1310 Programmeringsteknik i Java Tentamen (1p) den 22:a augusti 2002, kl 14.00 17.00 Hjälpmedel: En javabok(det blå javahäftet som ingår i kursbunten räknas som en javabok). Förklarande
Läs merObjektorienterad Programmering DAT043. Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 5 29/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetition: Arv En subklass ärver alla variabler och metoder från sin superklass.
Läs merTentamen i Grundläggande programmering STS, åk 1 lördag 2002-05-25
Tentamen i Grundläggande programmering STS, åk 1 lördag 2002-0-2 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Elena Fersman besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka
Läs merObjektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering
och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering
Läs merFält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.
Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus
Läs merFöreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Läs merTentamen i Programmeringsteknik I
UPPSALA UNIVERSITET Institutionen för Informationsteknologi Tentamen i Programmeringsteknik I 091211 Skrivtid: 8-11 Hjälpmedel: Lewis & Loftus, Java Software Solutions eller Skansholm, Java Direkt med
Läs merPROG2 Tenta 2014-05-02 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2
DSV SU/KTH sid 1 (6) PROG2 PROG2 Tenta 2014-05-02 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 Tentan består av tre uppgifter. Max poäng är 38. För betyget E (godkänd) krävs minst
Läs merModellsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Magnus Myréen Modellsvar för Tentamen för Objektorienterad programvaruutveckling,
Läs merDen som bara har en hammare tror att alla problem är spikar
Introduktion Föreläsning (Weiss kap. -4) Många begrepp blir det Introduktion till kursen Exempel: Datastrukturen mängd Generiska Den som bara har en hammare tror att alla problem är spikar Vilken
Läs merFöreläsning 10. ADT:er och datastrukturer
Föreläsning 10 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad
Läs merDet finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Läs merLite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Läs merLösningar för tenta 3 DAT043,
Lösningar för tenta 3 DAT043, 2018-08-22. Uppgift 1 class Person{ public String förnamn; public String efternamn; public int ålder; private double längd; private double vikt; public Person(String förnamn,
Läs merKARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09
Laboration 4, ISG A04 och DVG A08 HT-09 Laborationen går ut på att skapa en enkel bankbok. Ni skall i bankboken kunna registrera upp till 30 transaktioner som kan bestå av insättning, uttag eller checkuttag.
Läs merIdag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Läs merFöreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder
Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla
Läs merLösningsförslag till tentamen
Uppgift 1 a) Sant. b) Sant. c) Sant. Lösningsförslag till tentamen 170818 d) Falskt. IPv6 anger en IP-adress med 132 bitar. e) Falskt. Spoofing åsyftar användning av förfalskad eller lånad identitet på
Läs merKlasser som datastrukturer
Klasser som datastrukturer Ex: du vill skicka ett meddelande som består av text (String), avsändarnamn (String), klockslag (två int). Du kan förstås skicka alla dessa efter varandra. Bättre är att bygga
Läs merLektion Händelsehanterare
Lektion Händelsehanterare Händelsehanterare kallas även lyssnare. En lyssnare har som uppgift att ta hand om olika händelser som kan inträffa. För att lyssnaren skall reagera på händelser måste den registreras
Läs merDatalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten
Läs mer