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

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

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

Föreläsning 1, vecka 8: Att förbereda sig för tentan

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

Föreläsning 12: Exempel och problemlösning

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

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

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

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

Fö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äsnings 11 - GUI, Händelsestyrda program, MVC

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

Föreläsning 8: Exempel och problemlösning

Lösningsförslag till tentamen

Rita Egna Bilder, Timer

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

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

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

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

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Laboration 15 Grafiskt användargränssnitt

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

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

Lösningsförslag till tentamen

Lösningar för tenta 3 DAT043,

Tentamen i Objektorienterad programmering E

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Tentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs

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

Mer om grafiska komponenter. Händelsestyrda program

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

Föreläsning 2, vecka 6: Tillstånd i objektorienterade program (och mera interface)

Exempel på användning av arv: Geometriska figurer

Laboration 4: Game of Life

Lösningsförslag till tentamen

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

Tentamen i Objektorienterad programmering

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 Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

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

Lösningsförslag till tentamen

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

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

DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU

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

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

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

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

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

Föreläsning 2, vecka 8: Repetition

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

Tentamen i Objektorienterad programmering

Lösningsförslag till tentamen

OOP Objekt-orienterad programmering

Lektion Händelsehanterare

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

Projekt 2 XL. Observer-mönstret

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

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

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

Föreläsning 6: Metoder och fält (arrays)

LYCKA TILL!!! TENTAMEN I Programmeringsteknik F1. Var vänlig och läs detta: CTH TIN 211. DATAVETENSKAP Göteborg ( ) TENTAMEN

JAVAUTVECKLING LEKTION 8

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

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

Lösningsförslag till tentamen

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 )

OOP Objekt-orienterad programmering

Föreläsning 11: Rekursion

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

Arv 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.

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

kl

Tentamen i Objektorienterad programmering E

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

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Grafiska komponenter.

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

Laboration 24 Databasen MySQL och java

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

Föreläsning 1, vecka 7: Rekursion

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

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

Frames, menyer och GUI-program

Examination i PROGRAMMERINGSTEKNIK F1/TM1 TIN212. Dag: Måndag Datum: Tid: (OBS 5 tim) Rum: V+M

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen

Tentamen FYTA11 Javaprogrammering

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

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

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

Laboration 13, Arrayer och objekt

Java-concept och Swing. Swing low, sweet chariot

Lösningar till tentamen i EDAF25

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

Transkript:

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 och kanske problemlösning: uppgifter som har swing och grafik. Uppgift: Skriv ett enkelt ritprogram. 1. Man bör kunna rita bollar, rektanglar, linjer, mm. 2. Man bör kunna välja färg med knappar. 3. Man bör kunna trycka på undo och redo knappar. eller vill ni göra något annat? Nästa gång träffas vi på tentan! :-)

Idag har vi quiz! Gå till följande sida med din telefon eller laptop: tinyurl.com/tda545quiz

bör vara samma T1 Testning av quiz-tekniken Är ni färdiga för tentan? A: ja, jag kan sitta tentan nu om det behövs B: nästan, en övningsdag till så är jag färdig C: om en vecka kanske D: jag kommer nog inte att vara färdig tinyurl.com/tda545quiz

T2 Testning av quiz-tekniken Vad vill ni göra idag? A: endast quiz B: mest quiz + lite problemlösning C: lite quiz + mycket problemlösning D: något annat

Quiz fråga: Varför klagar kompilatorn (javac)?

Q1 Varför klagar kompilatorn (javac)? public class Q1 { public static void main(string[] args) { for(i=0; i<0; i++) { System.out.println(i); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q1 Varför klagar kompilatorn (javac)? public class Q1 { public static void main(string[] args) { for(i=0; i<0; i++) { System.out.println(i); Variabel i är inte deklarerad. A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q2 Varför klagar kompilatorn (javac)? public class Q2 { int foo(int i) { return i+1; public static void main(string[] args) { System.out.println(foo(args.length)); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q2 Varför klagar kompilatorn (javac)? public class Q2 { int foo(int i) { return i+1; public static void main(string[] args) { System.out.println(foo(args.length)); foo är en instansmetod A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q3 Varför klagar kompilatorn (javac)? public class Q3 { static int foo(int i) { return i+1; private Q3(int k) { System.out.println(foo(foo(k))); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q3 Varför klagar kompilatorn (javac)? public class Q3 { static int foo(int i) { return i+1; private Q3(int k) { System.out.println(foo(foo(k))); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q5 Varför klagar kompilatorn (javac)? import java.awt.*; import javax.swing.*; public class Q5 { public Q(int k) { JFrame f = new JFrame(); f.add(new JButton("Hi")); Window w = f; w.setvisible(w.equals(f)); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q5 Varför klagar kompilatorn (javac)? import java.awt.*; import javax.swing.*; public class Q5 { borde vara Q5 (alternativt saknas returtyp) public Q(int k) { JFrame f = new JFrame(); f.add(new JButton("Hi")); Window w = f; w.setvisible(w.equals(f)); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q6 Varför klagar kompilatorn (javac)? import java.awt.*; import javax.swing.*; public class Q6 { public Q6(int k) { Window w = new JFrame(); w.add(new JButton("Hi")); JFrame f = w; f.setvisible(f.equals(w)); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q6 Varför klagar kompilatorn (javac)? import java.awt.*; import javax.swing.*; public class Q6 { public Q6(int k) { Window w = new JFrame(); w.add(new JButton("Hi")); JFrame f = w; f.setvisible(f.equals(w)); inkompatibel typ A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q7 Varför klagar kompilatorn (javac)? public class Q7 { public static void main(string [] args) { System.out.println ("Hello world!" ); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q7 Varför klagar kompilatorn (javac)? public class Q7 { public static void main(string [] args) { System.out.println ("Hello world!" ); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q8 Varför klagar kompilatorn (javac)? public class Q8 { public static void main( String [] args) { System.out.println (" Hello world!"); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q8 Varför klagar kompilatorn (javac)? public class Q8 { public static void main( String [] args) { System.out.println (" Hello world!"); strängen tar inte slut på denna rad A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q9 Varför klagar kompilatorn (javac)? import java.awt.*; import javax.swing.*; public class Q9 extends JFrame, JPanel { public Q9(String str) { super(); this.add(this); setvisible(true); public String tostring(int i) { return this.tostring(); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q9 Varför klagar kompilatorn (javac)? import java.awt.*; import javax.swing.*; public class Q9 extends JFrame, JPanel { public Q9(String str) { super(); this.add(this); setvisible(true); att ärva från flera klasser går ej i Java public String tostring(int i) { return this.tostring(); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q10 Varför klagar kompilatorn (javac)? import java.awt.event.*; public class Q10 extends ActionListener { public int k = 1; public void actionperformed(actionevent e) { k = k - 1; System.out.println(k); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Q10 Varför klagar kompilatorn (javac)? import java.awt.event.*; ActionListener är ett gränssnitt (interface) public class Q10 extends ActionListener { public int k = 1; public void actionperformed(actionevent e) { k = k - 1; System.out.println(k); A: syntaxfel B: typfel C: någonting är inte definierat D: kompilatorn klagar inte

Quiz fråga: Vad är mest sant?

R1 Vad är mest sant? Abstrakt klasser A: är samma som gränssnitt B: kan innehålla en eller flera abstrakt metoder C: måste innehålla en eller flera abstrakt metoder D: får inte innehålla kod

R1 Vad är mest sant? Abstrakt klasser A: är samma som gränssnitt B: kan innehålla en eller flera abstrakt metoder C: måste innehålla en eller flera abstrakt metoder D: får inte innehålla kod

R2 Vad är mest sant? Arv och gränssnitt: A: Man kan inte ärva och implementera gränssnitt på samma gång. B: Man kan inte implementera två olika gränssnitt i samma klassdefinition. C: Man kan inte ärva från två olika klasser i samma klassdefinition. D: En klassdefinition kan inte vara inuti en annan.

R2 Vad är mest sant? Arv och gränssnitt: A: Man kan inte ärva och implementera gränssnitt på samma gång. B: Man kan inte implementera två olika gränssnitt i samma klassdefinition. C: Man kan inte ärva från två olika klasser i samma klassdefinition. D: En klassdefinition kan inte vara inuti en annan.

R3 Vad är mest sant? Ritning av grafik A: gör man med GUI komponenter, t.ex JButton B: kan man inte göra i Java. C: ritar man endast i JPanel. D: kan man göra med överskuggning av paintcomponent

R3 Vad är mest sant? Ritning av grafik A: gör man med GUI komponenter, t.ex JButton B: kan man inte göra i Java. C: ritar man endast i JPanel. D: kan man göra med överskuggning av paintcomponent

Quiz fråga: Vad skriver programmet?

S1 Vad skriver programmet? public class S1 { public static void main(string[] args) { System.out.print("Hi"); System.out.print("Ho"); System.out.print("Hu"); A: HiHoHu B: Hi Ho Hu C: Hi Ho Hu

S1 Vad skriver programmet? public class S1 { public static void main(string[] args) { System.out.print("Hi"); System.out.print("Ho"); System.out.print("Hu"); A: HiHoHu B: Hi Ho Hu C: Hi Ho Hu

S2 Vad skriver programmet? public class S2 { public static void main(string[] args) { System.out.print("1- \n- 2- \t- 3"); A: 1- \n- 2- \t- 3 C: 1 2 3 B: 1- - 2- - 3

S2 Vad skriver programmet? public class S2 { public static void main(string[] args) { System.out.print("1- \n- 2- \t- 3"); A: 1- \n- 2- \t- 3 C: 1 2 3 B: 1- - 2- - 3

S3 Vad skriver programmet? public class S3 { public static void main(string[] args) { int i = 0; System.out.println(i + " " + (i++) + " " + (++i) + " " + (i+1)); A: 0 0 0 1 B: 0 1 2 3 C: 0 0 2 2

S3 Vad skriver programmet? public class S3 { public static void main(string[] args) { int i = 0; System.out.println(i + " " + (i++) + " " + (++i) + " " + (i+1)); A: 0 0 0 1 B: 0 1 2 3 C: 0 0 2 2 0 0 2 3

S4 Vad skriver programmet? public class S4 { public static void main(string[] args) { int i = 2; System.out.println(i + "" + i); A: i + "" + i B: 4 C: 22

S4 Vad skriver programmet? public class S4 { public static void main(string[] args) { int i = 2; System.out.println(i + "" + i); A: i + "" + i B: 4 C: 22

S5 Vad skriver programmet? public class S5 { public static void main(string[] args) { int[] a = { 2, 3, 1, 0 ; int i = 0; while (a[i]!= 0) { i = a[i]; System.out.print(i + " "); A: 2 1 3 B: 2 1 1 C: 2 3 4

S5 Vad skriver programmet? public class S5 { public static void main(string[] args) { int[] a = { 2, 3, 1, 0 ; int i = 0; while (a[i]!= 0) { i = a[i]; System.out.print(i + " "); A: 2 1 3 B: 2 1 1 C: 2 3 4

S6 public class S6 { Vad skriver programmet? public static void swap(int[] a, int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; public static void main(string[] args) { int[] a = { 0, 1, 2, 3 ; for(int i=0; i<a.length; i++) { swap(a,i,i+1); System.out.println(a[0]+","+a[1]+","+a[2]+","+a[3]); A: 0,1,2,3 B: 0,0,0,0 C: 1,2,3,0

S6 public class S6 { Vad skriver programmet? public static void swap(int[] a, int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; public static void main(string[] args) { int[] a = { 0, 1, 2, 3 ; for(int i=0; i<a.length; i++) { swap(a,i,i+1); System.out.println(a[0]+","+a[1]+","+a[2]+","+a[3]); A: 0,1,2,3 B: 0,0,0,0 C: 1,2,3,0 0,1,2,3

S7 public class S7 { Vad skriver programmet? public static int fib(int i) { System.out.print(i + " "); if (i < 2) { return i; else { return fib(i- 1) + fib(i- 2); public static void main(string[] args) { fib(3); A: 3 2 1 0 1 B: 3 1 2 0 1 C: 3 2 1 1 2 1 1

S7 public class S7 { Vad skriver programmet? public static int fib(int i) { System.out.print(i + " "); if (i < 2) { return i; else { return fib(i- 1) + fib(i- 2); public static void main(string[] args) { fib(3); A: 3 2 1 0 1 B: 3 1 2 0 1 C: 3 2 1 1 2 1 1

S8 public class S8 { Vad skriver programmet? public static int[] foo(int[] a, int k) { int[] temp = new int[a.length]; for (int i=0; i<a.length; i++) { temp[i] = a[(i+k) % a.length]; return temp; public static void main(string[] args) { int[] a = { 0, 1, 2, 3 ; a = foo(a,4); System.out.println(a[0]+","+a[1]+","+a[2]+","+a[3]); A: 1,2,3,0 B: 0,1,2,3 C: 1,2,3,0

S8 public class S8 { Vad skriver programmet? public static int[] foo(int[] a, int k) { int[] temp = new int[a.length]; for (int i=0; i<a.length; i++) { temp[i] = a[(i+k) % a.length]; return temp; public static void main(string[] args) { int[] a = { 0, 1, 2, 3 ; a = foo(a,4); System.out.println(a[0]+","+a[1]+","+a[2]+","+a[3]); A: 1,2,3,0 B: 0,1,2,3 C: 1,2,3,0

S9 Vad skriver programmet? public class S9 { public static void main(string[] args) { int[][] a = { {0,0,{0,0,{0,0,{0,0 ; a[0][0] = 5; a[1] = a[0]; a[3] = a[1]; a[3][1] = 1; a[3] = a[2]; a[3][1] = 3; int res = 0; for (int i=0; i<a.length; i++) { for (int j=0; j<a[i].length; j++) { res = res + a[i][j]; System.out.println(res); A: 9 B: 27 C: 18

Vad skriver programmet? public class S9 { public static void main(string[] args) { int[][] a = { {0,0,{0,0,{0,0,{0,0 ; S9 a[0][0] = 5; a[1] = a[0]; referensvärdet a[0] kopieras a[3] = a[1]; a[3][1] = 1; a[3] = a[2]; referensvärdet a[0] skrivs över a[3][1] = 3; int res = 0; for (int i=0; i<a.length; i++) { for (int j=0; j<a[i].length; j++) { res = res + a[i][j]; System.out.println(res); A: 9 B: 27 C: 18

S10 Vad skriver programmet? public class S10 { static int x = 0; int y = 0; public int foo(int k) { x = x+k; y = y+k; return x+k; public static void main(string[] args) { S10 a = new S10(); S10 b = new S10(); a.foo(b.foo(5)); System.out.println("x=" + x + " a.y=" + a.y + " b.y=" + b.y); A: x=15 a.y=15 b.y=5 B: x=5 a.y=5 b.y=5 C: x=15 a.y=10 b.y=5

S10 Vad skriver programmet? public class S10 { static int x = 0; int y = 0; public int foo(int k) { x = x+k; y = y+k; return x+k; public static void main(string[] args) { S10 a = new S10(); S10 b = new S10(); a.foo(b.foo(5)); System.out.println("x=" + x + " a.y=" + a.y + " b.y=" + b.y); A: x=10 a.y=15 b.y=5 B: x=5 a.y=5 b.y=5 C: x=15 a.y=10 b.y=5

T3 Vad vill ni göra nu? A: endast quiz B: 10 min quiz till, sen resten problemlösning C: 20 min quiz till, sen resten problemlösning D: endast problemlösning Uppgift: Skriv ett enkelt ritprogram. 1. Man bör kunna rita bollar, rektanglar, linjer, mm. 2. Man bör kunna välja färg med knappar. 3. Man bör kunna trycka på undo och redo knappar.

import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Rita extends JFrame { private class DrawingPanel extends JPanel implements MouseListener { private int x = - 40; private int y = - 40; private Color c = Color.PINK; public DrawingPanel() { addmouselistener(this); public void paintcomponent(graphics g) { super.paintcomponent(g); g.setcolor(color.white); g.fillrect(0,0,getwidth(),getheight()); g.setcolor(c); g.fillrect(x- 5,y- 5,10,10); Ritprogrammet som skrevs på föreläsningen public void mouseclicked(mouseevent e) { x = e.getx(); y = e.gety(); this.repaint(); public void mouseentered(mouseevent e) { public void mouseexited(mouseevent e) { public void mousepressed(mouseevent e) { public void mousereleased(mouseevent e) { public void setcolor(color c) { this.c = c; Det blev inte klart. public Rita() { JPanel main = new JPanel(new BorderLayout()); JPanel colors = new JPanel(); JPanel mode = new JPanel(new GridLayout(2,1)); DrawingPanel drawing = new DrawingPanel(); main.add(colors,borderlayout.south); main.add(mode,borderlayout.west); main.add(drawing,borderlayout.center); JButton red = new JButton("Red"); JButton blue = new JButton("Blue"); colors.add(red); colors.add(blue); red.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { drawing.setcolor(color.red); ); blue.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { drawing.setcolor(color.blue); ); Just nu går det endast att rita (eller egentligen flytta på) en rektangel. Kan du få programmet att rita flera rektanglar? Kan du implementera undo och redo? JButton cir = new JButton("Circle"); JButton rec = new JButton("Rectangle"); mode.add(cir); mode.add(rec); this.add(main); setdefaultcloseoperation(jframe.exit_on_close); setsize(400,350); setvisible(true); public static void main(string[] args) { Rita f = new Rita();

Quiz fråga: Vad ska (???) vara?

import java.awt.*; import javax.swing.*; B1 Vad ska (???) vara? public class B1 extends JPanel { // draws a 10x10 box in the top right corner public void paintcomponent(graphics g) { super.paintcomponent(g); int w = getwidth(); int h = getheight(); g.fillrect(??? ); A: w,h,10,10 B: w- 10,h- 10,10,10 C: w- 10,0,10,10

import java.awt.*; import javax.swing.*; Vad ska (???) vara? public class B1 extends JPanel { B1 // draws a 10x10 box in the top right corner public void paintcomponent(graphics g) { super.paintcomponent(g); int w = getwidth(); int h = getheight(); g.fillrect(??? ); A: w,h,10,10 B: w- 10,h- 10,10,10 C: w- 10,0,10,10

// represents circles public class B2 { B2 Vad ska (???) vara? private static int circlecount = 0;??? radius = 0; public B2(int radius) { this.radius = radius; circlecount = circlecount+1; public int getradius() { return radius; public static int gettotal() { return circlecount; A: private static double B: public static int C: private static int

// represents circles public class B2 { B2 Vad ska (???) vara? private static int circlecount = 0;??? radius = 0; public B2(int radius) { this.radius = radius; circlecount = circlecount+1; radius bör vara en instansvariabel public int getradius() { return radius; public static int gettotal() { return circlecount; A: private static double B: public static int C: private static int

import java.awt.*; import javax.swing.*; Vad ska (???) vara? // a form with a button public class B3 extends JFrame { B3 public B3() { JPanel p = new JPanel(); JButton b = new JButton("Knapp");??? A: setvisible(true); B: add(p); p.add(b); C: p.add(b); this.add(p);

import java.awt.*; import javax.swing.*; Vad ska (???) vara? // a form with a button public class B3 extends JFrame { B3 public B3() { JPanel p = new JPanel(); JButton b = new JButton("Knapp");??? A: setvisible(true); B: add(p); p.add(b); C: p.add(b); this.add(p);

import java.awt.*; import javax.swing.*; B4 Vad ska (???) vara? // a frame with three buttons on a line public class B4 extends JFrame { public B4() { JButton b1 = new JButton("Knapp 1"); JButton b2 = new JButton("Knapp 2"); JButton b3 = new JButton("Knapp 3"); JPanel p = new JPanel(???); p.add(b1); p.add(b2); p.add(b3); this.add(p); A: new GridLayout(1,3) B: new BorderLayout() C: new FlowLayout()

import java.awt.*; import javax.swing.*; B4 Vad ska (???) vara? // a frame with three buttons on a line public class B4 extends JFrame { public B4() { JButton b1 = new JButton("Knapp 1"); JButton b2 = new JButton("Knapp 2"); JButton b3 = new JButton("Knapp 3"); JPanel p = new JPanel(???); p.add(b1); p.add(b2); p.add(b3); this.add(p); A: new GridLayout(1,3) B: new BorderLayout() C: new FlowLayout()

import javax.swing.*; import java.awt.event.*; Vad ska (???) vara? // a timer that ticks twice every delay milliseconds public class B5 extends Timer { B5 public B5(int delay, ActionListener al) { super(delay,new ActionListener() { public void actionperformed(actionevent e) { al.actionperformed(e);??? ); A: actionperformed() B: actionperformed(e) C: al.actionperformed(e);

import javax.swing.*; import java.awt.event.*; Vad ska (???) vara? // a timer that ticks twice every delay milliseconds public class B5 extends Timer { B5 public B5(int delay, ActionListener al) { super(delay,new ActionListener() { public void actionperformed(actionevent e) { al.actionperformed(e);??? ); A: actionperformed() B: actionperformed(e) C: al.actionperformed(e);

B6 Vad ska (???) vara? public class B6 { // swaps the content of arrays a and b public void swap(int[] a, int[] b) { if (a.length == b.length) { int[] t;??? else { throw new IllegalArgumentException("argh!"); A: b = a; a = b; B: a,b = b,a; C: t = b; b = a; a = t;

B6 Vad ska (???) vara? public class B6 { // swaps the content of arrays a and b public void swap(int[] a, int[] b) { if (a.length == b.length) { int[] t;??? else { throw new IllegalArgumentException("argh!"); for (int i=0; i < a.length; i++) { int k = a[i]; a[i] = b[i]; b[i] = k; A: b = a; a = b; B: a,b = b,a; C: t = b; b = a; a = t;

import javax.swing.*; import java.awt.event.*; Vad ska (???) vara? // writes Hej every second public class B7??? ActionListener { B7 public void actionperformed(actionevent e) { System.out.println("Hej!"); public B7() { Timer t = new Timer(1000,this); t.start(); A: extends B: implements C: throws

import javax.swing.*; import java.awt.event.*; Vad ska (???) vara? // writes Hej every second public class B7??? ActionListener { B7 public void actionperformed(actionevent e) { System.out.println("Hej!"); public B7() { Timer t = new Timer(1000,this); t.start(); A: extends B: implements C: throws

B8 Vad ska (???) vara? public class B8 { // moves the content of a up by one public void swap(int[] a) { int k = a.length; for??? { a[i+1] = a[i]; A: (int i=0; i<k; i++) B: (int i=0; i<k- 1; i++) C: (int i=k- 1; 0<=i; i- - )

B8 Vad ska (???) vara? public class B8 { // moves the content of a up by one public void swap(int[] a) { int k = a.length; for??? { a[i+1] = a[i]; A: (int i=0; i<k; i++) B: (int i=0; i<k- 1; i++) C: (int i=k- 1; 0<=i; i- - )

B9 Vad ska (???) vara? public class B9 { // returns true if (and only if) k is in array a public void find(int k, int[] a) { int i = a.length- 1; while??? { i = i- 1; return 0 <= i; A: (a[i]!= k) B: (a[i]!= k && 0 <= i) C: (0 <= i && a[i]!= k)

B9 Vad ska (???) vara? public class B9 { // returns true if (and only if) k is in array a public void find(int k, int[] a) { int i = a.length- 1; while??? { i = i- 1; return 0 <= i; A: (a[i]!= k) B: (a[i]!= k && 0 <= i) C: (0 <= i && a[i]!= k)

B10 Vad ska (???) vara? public class B10 { // returns the maximum value of an array public??? findmax(???[] a) { if (a == null a.length == 0) { throw new RuntimeException();??? max = a[0]; for (int i=1;i<a.length;i++) { if (max.compareto(a[i]) < 0) { max = a[i]; return max; A: Comparable B: int C: Object

B10 Vad ska (???) vara? public class B10 { // returns the maximum value of an array public??? findmax(???[] a) { if (a == null a.length == 0) { throw new RuntimeException();??? max = a[0]; for (int i=1;i<a.length;i++) { if (max.compareto(a[i]) < 0) { max = a[i]; return max; A: Comparable B: int C: Object