Kursutvärdering. Spel och grafik i Java. Föreläsningarna. Labbar. Föreläsningar-labbar. Översikt. Bra föreläsningar

Storlek: px
Starta visningen från sidan:

Download "Kursutvärdering. Spel och grafik i Java. Föreläsningarna. Labbar. Föreläsningar-labbar. Översikt. Bra föreläsningar"

Transkript

1 Föreläsningarna Kursutvärdering Bra föreläsningar Bra tempo (2) Bra att man kan påverka innehållet Bra kommunikation på föreläsningarna För svåra föreläsningar Mer kodexempel på grundläggande Java Mer progressivt genomgående» Förklara interfaces, comparator, iterator Introduktionen bör vara tydligare Undvik sidospår Programmering tillämpningar och datastrukturer 2 Föreläsningar-labbar Lätt att hänga med på föreläsningarna, men svårt att tillämpa dem på labbarna Slidesen hjälper på labbarna De moment som varit oklara på föreläsningarna har förklarats och förståtts på labbarna Programmering tillämpningar och datastrukturer 3 Labbar Bra labbhandledning (2) Svårt att testa innan man skrivit klart hela koden Svar: Obs att iteratorn inte behöver kodas innan man kan testa listor Tydligare instruktioner till labbarna Är det meningen att vi ska klara labbarna eller att vi ska lära oss hitta information själva? Svar: Båda. Labbarna ska stödja er inlärning, men de är inget självändamål Programmering tillämpningar och datastrukturer 4 Översikt Spel och grafik i Java Grafiska komponenter Övergripande design Måla egna komponenter Demo av exempelkod Användning av State Observer Timer Att ta tiden Hur länge en knapp är intryckt Kollisionsdetektion Programmering tillämpningar och datastrukturer 6

2 Grafiska paket i Java java.awt Gamla fönsterhanteringsklasser java.awt.event Händelsestyrning javax.swing Nya J klasser Vanligast använda: JFrame LayoutManager JPanel JLabel JButton Grafiska komponenter Programmering tillämpningar och datastrukturer 7 Programmering tillämpningar och datastrukturer 8 JFrame Vanligt fönster med ramar, titelrad och stängningsknapp Layout-manager ContentPane Själva fönsterytan Protokoll för JFrame Konstruktor: JFrame(String titelrad) setdefaultcloseoperation(int op) Använd t.ex. Jframe.EXIT_ON_CLOSE add(component comp) setsize(int width, int height) setsize(int startx, int starty, int w, int h) Programmering tillämpningar och datastrukturer 9 Programmering tillämpningar och datastrukturer 10 Protokoll för JFrame setlayout(layoutmanager manager) add(component comp) remove(component comp) pack() // anpassa fönsterstorlek till innehåll setvisible(boolean) // detta bör göras sist Exempelkod public QuickDraw() { // konstruktorn super("quickdraw"); // skapa yttre fönstret setlayout(new BorderLayout()); // välj layout på innehållet add(mydrawsurface, BorderLayout.CENTER); // lägg i mitten add(mytoolbar, BorderLayout.WEST); // lägg till vänster setvisible(true); // visa på skärmen nu Programmering tillämpningar och datastrukturer 11 Programmering tillämpningar och datastrukturer 12

3 Panel utan ramar JPanel Målarduk som kan fylla upp en viss del av ett fönster Enligt fönstrets layout Kan i sin tur ha en given layout Kan stackas rekursivt, dvs. Jpanel i Jpanel, enigt en viss layout Protokoll för JPanel JPanel(LayoutManager layout) add(component c) Remove(Component c) paintcomponent(graphics g) repaint() Programmering tillämpningar och datastrukturer 13 Programmering tillämpningar och datastrukturer 14 JLabel Används för att hålla en ikon eller en testremsa Brukar därför ligga på näst sista nivån i behållar-hierarkin Exempelkod JLabel score; score = new JLabel("0", JLabel.CENTER); score.setfont(new Font("SansSerif", Font.BOLD, 18)); score.setforeground(color.red); score.setalignmentx(center_alignment); Programmering tillämpningar och datastrukturer 15 Programmering tillämpningar och datastrukturer 16 JButton Knappar som kan innehålla text eller ikon Protokoll för AbstractButton JButton(String text, Icon icon) JButton(Icon icon) JButton(String text) seticon(icon defaulticon) Programmering tillämpningar och datastrukturer 17 Programmering tillämpningar och datastrukturer 18

4 Protokoll för JButton Exempelkod boolean isdefaultbutton() isselected() Hela knappen Kan även testa för press, rollover Icon getselectedicon() addactionlistener(actionlistener listener) Programmering tillämpningar och datastrukturer 19 public class ShapeButton extends JButton { public ShapeButton(String txt, ) { // konstruktor super(txt); addmouselistener(this); Programmering tillämpningar och datastrukturer 20 Exempelkod BorderLayout /** Enkelt ritprogram */ public class QuickDraw extends JFrame { public QuickDraw() { // konstruktorn super("quickdraw"); // skapa fönstret setlayout(new BorderLayout()); setvisible(true); Fem regioner NORTH SOUTH EAST WEST CENTER (default) Skapa nytt objekt Panel p = new JPanel(); p.setlayout(new BorderLayout()); p.add(new Button("OK"), BorderLayout.SOUTH); Programmering tillämpningar och datastrukturer 21 Programmering tillämpningar och datastrukturer 22 BorderLayout GridLayout WEST NORTH CENTER EAST Matris-mönster Alla komponenter ges samma utrymme Dvs. lika stora rutor SOUTH Programmering tillämpningar och datastrukturer 23 Programmering tillämpningar och datastrukturer 24

5 FlowLayout Komponenterna läggs upp i en rad Komponenterna skalas inte Får inte alla komponenter plats bredvid varandra påbörjas ny rad Automatisk omplacering om fönsterstorleken skulle ändras BoxLayout Som FlowLayout, men med fler kontrollmöjligheter: Kan lägga raden vertikalt Kan påverka regionernas storlek setpreferredsize(new Dimension(10, 30)); Fyllnad mellan regionerna createridigarea(new Dimension(20, 100)); Programmering tillämpningar och datastrukturer 25 Programmering tillämpningar och datastrukturer 26 Grafiska komponenter Dubbel funktion Kan vara behållare Kan vara komponent i en behållare Alla klasser kan dock inte ligga ytterst Två typer Tungviktiga Kan ligga ytterst, t.ex. JFrame Lättviktiga Måste ligga i en annan komponent Tungviktiga komp. i Swing JApplet, JDialog, JFrame, JWindow Använder operativsystemets grafiska funktioner Plattformsberoende Har direktkontakt med operativsystemet Programmering tillämpningar och datastrukturer 27 Programmering tillämpningar och datastrukturer 28 Lättviktiga komp. i Swing Klassdiagram för Component JComponent och dess subklasser Får utrymme tilldelat inom en tungviktskomponent Panel Window Object Component Container JComponent Applet Dialog Frame JWindow JApplet JDialog JFrame JSlider JToolBar JOptionPane AbstractButton JLabel JPanel JTextComponent JButton JMenuItem JTextField JTextArea JComboBox JToggleButton JMenu Programmering tillämpningar och datastrukturer 29 JCheckBox JRadioButton JComponent kan läggas i Jframe kan rita upp sig Programmering tillämpningar och datastrukturer 30

6 Komponenter Bygga egen Container-hierarki Komponenter kan i sin tur vara behållare för andra komponenter Component Container Behållar-hierarki (Container hierarchy) Window JComponent Frame JFrame AbstractButton JLabel JPanel JButton Programmering tillämpningar och datastrukturer 31 Programmering tillämpningar och datastrukturer 32 Dataspel Värld Grafiska dataspel Aktörer Mer eller mindre självständiga Tidsflöde Programmering tillämpningar och datastrukturer 34 Dataspelets delar Aktörerna: Sprites Grafik Intern representation av alla aktörer Uppdateringsloop Inmatning Sprites betyder älva 2D-former Dynamiskt uppritade i Java Eller t.ex. transparenta gif-bilder Från webben Eller t.ex. programmet Gimp för att skapa bilderna Använd ImageIcon för bildinläsning Programmering tillämpningar och datastrukturer 35 Programmering tillämpningar och datastrukturer 36

7 Rita upp egen komponent Vad är ett Graphics-objekt? Verktygslåda för att visualisera, rita Ärv från JComponent (eller subklass) Se till att din egen klass ligger uppe på skärmen!!! Dvs. att din klass finns med i behållarhierarkin Gör egen definition av void paintcomponent(graphics g) Kommer ihåg vilken enhet man ritar på Skärmfönster, printer, Kommer ihåg vilken färg på penseln, etc. Nödvändig för uppritning Programmering tillämpningar och datastrukturer 37 Programmering tillämpningar och datastrukturer 38 Exempelkod public void paintcomponent(graphics g) { g.setcolor(color.white); // vit bakgrund g.fillrect(0, 0, mywidth, myheight); // rita upp figuren g.filloval(0, 0, width, height); Programmering tillämpningar och datastrukturer 39 Hur få ett Graphics-objekt? Hur få ett Graphics-objekt? Uppritning av förgrundsfigurer Uppritning i Java: 1. Java tar emot kommando från dig: repaint() 2. Java ritar upp bakomliggande saker, fönsterram, etc. 3. Java skapar ett Graphics-objekt åt dig som innehåller information om plats för uppritning, etc. 4. Java anropar din paintcomponent(graphics g) 5. Du kan nu rita upp din lilla ruta, bakgrund, samt din(a) förgrundsfigur(er) Du anropar alltså repaint() varje gång du vill uppdatera din rityta Anropa inte paintcomponent(graphics g) Java gör detta åt dig När du väl fått ett Graphics-objekt till paintcomponent kan du skicka vidare Graphics-objektet till alla dina förgrundsfigurer, och be dem rita upp sig Programmering tillämpningar och datastrukturer 41 Programmering tillämpningar och datastrukturer 42

8 Exempelkod repaint(); public void paintcomponent(graphics g) { g.setcolor(color.white); g.fillrect(0, 0, getwidth(), getheight()); allshapes.drawall(g); // rita mina figurer Varje figur är ett eget objekt För varje förgrundsfigur måste du skapa ett nytt objekt T.ex. new Sprite(); Detta objekt ska kunna rita upp sig T.ex. draw(graphics g); draw() kommer att anropas av en central uppritare som ritar upp hela spelytan paintcomponent(graphics g) { mysprite.draw(g); Programmering tillämpningar och datastrukturer 43 Programmering tillämpningar och datastrukturer 44 Att tänka på Alla sprites bör vara samlade i en lista T.ex. allsprites Del av din spelvärld Viktigt att skilja denna från själva displayen Så få beroenden som möjligt mellan dessa Helst enkelriktat beroende Övergripande design Programmering tillämpningar och datastrukturer 45 Spelexempel: MiniMario JComponent Listen -world -display MarioWorld Display -world +paintcomponent() Demo ListenToTimer ListenToKey +updateworld() +drawall() Paper DisplayOnScreen -frame +actionperformed() +keypressed() +keyreleased() MarioWorld AlternativeWorld +paintcomponent() +paintcomponent() +updateworld() +drawall() +updateworld() +drawall() keypressed() keypressed = Calendar.getInstance().getTimeInMillis(); keyreleased() { myworld.getplayer().jump(jumpheight, jumplength); mydisplay.repaint();; Programmering tillämpningar och datastrukturer 47

9 Modell MarioWorld.updateWorld() public void updateworld() { updateobstacles(); Sprite updateworld() { for all sprites: updatel(); World -mypos +updateworld() +move() +drawall() 1 +jump() * MarioWorld AlternativeWorld Player Obstacle Tree +updateworld() +updateworld() +drawall() +drawall() Programmering tillämpningar och datastrukturer 49 updatetrees(); for (Iterator<Tree> itr = alltrees.iterator(); itr.hasnext();) { itr.next().move(); for (Iterator<Obstacle> itr = allobstacles.iterator(); itr.hasnext();) { itr.next().move(); for (Iterator<Sprite> itr = allsprites.iterator(); itr.hasnext();) { itr.next().move(); Programmering tillämpningar och datastrukturer 50 MarioWorld.drawAll() public void drawall(graphics g) { for (Iterator<Tree> itr = alltrees.iterator(); itr.hasnext();) { itr.next().draw(g); for (Iterator<Obstacle> itr = allobstacles.iterator(); itr.hasnext();) { itr.next().draw(g); for (Iterator<Sprite> itr = allsprites.iterator(); itr.hasnext();) { itr.next().draw(g); Yttre behållare Programmering tillämpningar och datastrukturer 51 Topp-nivå behållare Händelser Sköter utskick av händelser som orsakas externt (exvis. av användaren) Musknappar Musrörelser Tangentnertryckning Kan dessutom behöva använda interna händelser Ex. timer Topp-nivå containers fångar upp signaler från operativsystemet Skickar vidare till komponenterna Specifika händelser (Event) skapas Skickas ut till alla lyssnare Lyssnare = komponent som har prenumererat på information från den här behållaren Programmering tillämpningar och datastrukturer 53 Programmering tillämpningar och datastrukturer 54

10 Component Vilka typer av prenumerationer finns det? Window +addmouselistener() +addkeylistener() +addfocuslistener() +addcomponentlistener() Container +addcontainerlistener() Alla dessa metoder tar komponent som argument, t.ex. this JComponent +addwindowlistener() +addchangelistener() +addpropertychangelistener() Frame AbstractButton +addactionlistener() JFrame JButton JLabel JPanel Programmering tillämpningar och datastrukturer 56 EventListener ActionEvent KeyEvent MouseEvent FocusEvent WindowEvent Vilka får prenumerera? EventListener ActionListener +ActionPerformed() KeyListener +KeyTyped() +KeyPressed() +KeyReleased() KeyAdapter MouseListener +MouseClicked() +MousePressed() +MouseReleased() +MouseEntered() +MouseExited() FocusListener +FocusGained() +FocusLost() WindowListener +WindowOpened() +WindowClosing() +WindowClosed() +WindowIconified() +WindowDeiconified() +WindowActivated() +WindowDeactivated() MouseMotionListener +MouseDragged() +MouseMoved() WindowAdapter MouseAdapter MouseMotionAdapter Programmering tillämpningar och datastrukturer 58 Events När man klickar med musen skickar operativsystemet meddelande till toppnivå behållaren, ex.vis. till JFrame Denna skapar ett internt meddelande Ex.vis. KeyEvent Skickas ut till de objekt som har prenumererat på den här typen av meddelande De som prenumerar på KeyEvent måste implementera gränssnittet KeyListener Hur ser ett Event ut? Programmering tillämpningar och datastrukturer 59

11 Klassen KeyEvent Klassen KeyEvent public static final int VK_ENTER public static final int VK_TAB = '\n'; = '\t'; /** * Constant for the non-numpad left arrow key. #VK_KP_LEFT */ public static final int VK_LEFT = 0x25; /** * Constant for the non-numpad up arrow key. #VK_KP_UP */ public static final int VK_UP = 0x26; int getkeycode() Returnerar tangentkod som motsvarar de konstanter som deklarerades i början av klassen char getkeychar() Returnerar bokstäver (ex. A för shift+a) Programmering tillämpningar och datastrukturer 61 Programmering tillämpningar och datastrukturer 62 int getx(); int gety(); int getbutton(); MouseEvent Exempelkod class ListenForPlayerInput implements MouseListener { public void mouseentered(mouseevent e) { activated = true; public void mouseclicked(mouseevent e) { if (activated) { gameworld.getplayer().moveforward(); Programmering tillämpningar och datastrukturer 63 Programmering tillämpningar och datastrukturer 64 Sprites Befolkar spelvärlden Sprites Kan rita upp egna figurer i Java Kan hämta in bilder från webben eller från saker man ritat i ett ritprogram Programmering tillämpningar och datastrukturer 66

12 Exempel: imageicon.painticon() Exempel: g.drawimage() public class Tree extends Sprite { private ImageIcon icon = new ImageIcon("C:/Users/ritko/Documents/figures/tree.gif"); public class Tree extends Sprite { private ImageIcon icon = new ImageIcon("C:/Users/ritko/Documents/figures/cactus.gif"); private Image img = icon.getimage(); public void draw(graphics g) { icon.painticon(this, g, (int) mypos.getx(), (int) mypos.gety()); public void draw(graphics g) { g.drawimage(img, (int) mypos.getx(), (int) mypos.gety(), null); Programmering tillämpningar och datastrukturer 67 Programmering tillämpningar och datastrukturer 68 Graphics2D Detta är egentligen det man får till sin paintcomponent() Måste göra downcast för att få tillgång till Graphics2D protokollet Ger tillgång till fler metoder public void draw(graphics g) { Graphics2D g2 = (Graphics2D) g; g2.rotate( ); Exempel Graphics2D public void draw(graphics g) { Graphics2D g2 = (Graphics2D) g; //spara nuvarande transformation AffineTransform transf = g2.gettransform(); // Ange rotation för utritning g2.rotate(math.toradians(45), (int) mypos.getx(), (int) mypos.gety()); // rita roterat g2.setcolor(color.red); g2.fillrect((int) mypos.getx(), (int) mypos.gety(), width, height); // återställ transformen g2.settransform(transf); Programmering tillämpningar och datastrukturer 69 Programmering tillämpningar och datastrukturer 70 Kollisionsdetektion Kollisionsdetektion Använd omgivande rektanglar Klassen Rectangle Rectangle r = new Rectangle(); if (r.intersects(r2) {... if (r.contains(point) {... Programmering tillämpningar och datastrukturer 72

13 Löpa igenom alla sprites Kan vara problematiskt om man vill rensa bort element i en lista som man håller på att löpa igenom ConcurrentModificationException Bäst att använda en iterator Exempelkod iterator Iterator<Sprite> itr = alltrees.iterator(); while (itr.hasnext()) { if (itr.next().getx() < -100) { itr.remove(); // destruction of trees outside the playarea Programmering tillämpningar och datastrukturer 73 Programmering tillämpningar och datastrukturer 74 Slumptal import java.util.random; Random rand = new Random(); width = (int) (rand.nextdouble()* ); height = (int) (rand.nextdouble()* ); Timer Programmering tillämpningar och datastrukturer 75 Uppdateringsloopen Ser till att alla aktörer (sprites) agerar (t.ex. rör sig) Istället för while-loop while (spelet är igång) { Använd klocksignal Tidur (timer) Lyssnare som sedan anropar model.update(); model.repaint(); Timer Ett objekt kan registrera sig hos en timer som kommer att generera händelser av typen ActionEvent Programmering tillämpningar och datastrukturer 77 Programmering tillämpningar och datastrukturer 78

14 Timer Finns även annan timer, vi vill ha just denna public class ListenToTimer extends Listen implements ActionListener { private javax.swing.timer timer; public ListenToTimer(World world, Display display, int timestep) { myworld = world; mydisplay = display; timer = new javax.swing.timer(timestep, this); timer.start(); Att ta tiden public void actionperformed(actionevent e) { myworld.updateworld(); mydisplay.repaint(); Programmering tillämpningar och datastrukturer 79 Hur länge en knapp hålls nertryckt public void keypressed(keyevent ev) { Hur länge en knapp hålls nertryckt public void keyreleased(keyevent ev) { switch (key) { case KeyEvent.VK_UP: timepressed = System.currentTimeMillis(); break; switch (key) { case KeyEvent.VK_UP: timereleased = System.currentTimeMillis(); timeheld = (int) timereleased timepressed; break; Programmering tillämpningar och datastrukturer 81 Programmering tillämpningar och datastrukturer 82 Delegering till State Hus State kan användas Alla sprites har ett tillstånd T.ex Walking T.ex. Jumping Dessa funktioner delegeras till State: Förflyttning move() Uppritning draw() Programmering tillämpningar och datastrukturer 84

15 State Kodexempel public void jump(double height, int duration) { if (!(mystate instanceof Jumping)) { Sprite -mypos State mystate = new Jumping(myPos.getY(), height, duration); +move() +jump() +move() mystate.move(mypos); Player Obstacle Tree Stationary Walking Jumping +move() +move() +move() Programmering tillämpningar och datastrukturer 85 Programmering tillämpningar och datastrukturer 86

Fönsterhantering, grafik

Fönsterhantering, grafik Spel: exempel Ex. skattjakt Fönsterhantering, grafik (del 2) Plan (16x16 rutor) Valt array som datastruktur En spelare En fiende Vet spelarens position Bör egentligen inte veta! Programmering tillämpningar

Läs mer

Händelsestyrda program

Händelsestyrda program JavaD- 1 Program- eller händelsestyrd exekvering Händelsestyrda program JavaD- 2 Programstyrd exekvering I ett traditionellt program bestämmer programmet när det är dags att läsa indata, programmets exekvering

Läs mer

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

Föreläsning 15 (16) Historik (java.awt) Historik (javax.swing) Introduktion till Swing Föreläsning 15 (16) Introduktion till Swing Historik (java.awt) JDK 1.0 AWT (Abstract Window Toolkit) Paket för gränssnittsprogrammering Har en del nackdelar: Använder s.k. native code Stödjer endast komponenter

Läs mer

Fönsterhantering, grafik

Fönsterhantering, grafik Grafiska komponenter Fönsterhantering, grafik (del 1) Vanligast använda: JFrame ContentPane LayoutManager JPanel JLabel JButton Programmering tillämpningar och datastrukturer 2 Paket Klassdiagram för Component

Läs mer

TDDE10 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 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 mer

Programstyrd / händelsestyrd

Programstyrd / händelsestyrd Programstyrd / händelsestyrd Jevent - 1 Händelsestyrda program Jevent - 2 Programstyrd exekvering I ett traditionellt program bestämmer programmet när det är dags att läsa indata, programmets exekvering

Läs mer

Laboration 15 Grafiskt användargränssnitt

Laboration 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 mer

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

ITK: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 mer

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

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 Föreläsning 7 Innehåll Grafiska användargränsnitt i Java Grafiska användargränsnitt i Java Komponenter (fönster, knappar, ) Layout Händelsehantering (Hur man får någonting att hända när användaren t.ex.

Läs mer

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

Malmö 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 mer

Labbinstruktioner för Java/Swing

Labbinstruktioner för Java/Swing Labbinstruktioner för Java/Swing Grafik- och interaktionsprogrammering 2008 Martin Berglund Allmänt Dessa instruktioner är på intet sett den enda möjliga lösningen på labben, tvärtom finns

Läs mer

Programmeringsteknik 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 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 mer

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

Objektorienterad 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 mer

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

Denna 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 mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare GUI - Graphical User Interface OOP F16:2 Man skapar en yta (ett fönster)

Läs mer

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

2I1049 Föreläsning 8. Grafiska gränssnitt i Java. AWT-komponenter. Grafiska gränssnitt, Java interface och händelsehantering 2I1049 Föreläsning 8 Grafiska gränssnitt, Java interface och händelsehantering 1 KTH-MI Peter Mozelius Grafiska gränssnitt i Java Efterfrågan på program med grafiskt gränssnitt har ökat avsevärt de senaste

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare GUI - Graphical User Interface OOP F16:2 Man skapar en yta (ett fönster)

Läs mer

Detta 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 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 mer

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

Fö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 mer

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

Modelsvar 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 Modelsvar för Tentamen för Objektorienterad programvaruutveckling,

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 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 mer

Mer om grafiska komponenter. Händelsestyrda program

Mer 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 mer

Laboration 4: Game of Life

Laboration 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 mer

Projekt 2 XL. Observer-mönstret

Projekt 2 XL. Observer-mönstret Projekt 2 XL Objektorienterad modellering och diskreta strukturer Inför nästa projekt Lennart Andersson Reviderad 2011 10 24 2011 OMD 2011 F15-1 Schema designmöten OMD 2011 F15-2 Observer-mönstret 2 och

Läs mer

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

Dagens 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 mer

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

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. LayoutManagers. Exempel på några av komponenterna MER Java Foundation Classes (JFC) Swing Swing Många klasser Vettigt att lära sig dem utantill - Tror inte det -... men det kan vara bra att ha en liten överblick över vad som finns - Idag (och med fortsättning

Läs mer

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

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna MER Java Foundation Classes (JFC) Swing Swing Många klasser" Vettigt att lära sig dem utantill" - Tror inte det" -... men det kan vara bra att ha en liten överblick över vad som finns" - Idag (och med

Läs mer

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

LiTHehack? Här? lithehack se koma Tisdagar och torsdagar 0 Java och Swing LiTHehack? Här? @ kontakt /. lithehack se. lithehack se koma -, 17 19 Tisdagar och torsdagar Idag grafik menyer kortkomandon pop up-menyer submenyer Skansholm Java direkt upplaga 6 eller

Läs mer

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

Föreläsning 3: Händelsestyrda program och användargränssnitt (2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september

Läs mer

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

Objektorienterad 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 mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 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 mer

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

Objektorienterad programmering med Java Swing. Programexempel. Swing och AWT AWT. = Abstract windowing toolkit Swing och AWT Objektorienterad programmering med Java Swing Sven-Olof Nyström Uppsala Universitet March 14, 2006 Skansholm: Kapitel 6 AWT = Abstract windowing toolkit använder värddatorns fönstersystem

Läs mer

Grafiska program i Java. AWT och Swing? AWT. Swing. JButton. Button

Grafiska program i Java. AWT och Swing? AWT. Swing. JButton. Button Grafiska program i Java 8-1 AWT och Swing? 8-2 Programmeringsgränssnittet för grafik i Java : Java Graphics API innehåller en mängd klasser för att utveckla grafiska program. De viktigaste typerna av klasser

Läs mer

Java-concept och Swing. Swing low, sweet chariot

Java-concept och Swing. Swing low, sweet chariot Java-concept och Swing Swing low, sweet chariot Javas Swing-API En del av Javas standard-api API - application programming interface Ett klassbibiliotek som följer med Java Är designat med många OO-concept

Läs mer

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

Grundlä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 mer

Rita Egna Bilder, Timer

Rita 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 mer

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

Fö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 mer

Grafiska komponenter.

Grafiska komponenter. Grafiska komponenter. Kap J5-1 Grafiska användargränssnitt är det moderna alternativet till traditionell terminal-i/o. GUI-programmering bygger på en händelsestyrd flödeskontroll. I Java utförs GUI-programmeringen

Läs mer

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

Modelsvar 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 Modelsvar för Tentamen för Objektorienterad programvaruutveckling,

Läs mer

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.

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. Java utan netbeans Du har gjort ett program i netbeans Hur exportera det så att andra kan köra det utan att använda netbeans? Välj projektet som main project Högerklicka på det och välj Clean and Build

Läs mer

PROG2 Tenta 2013-06-07 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

PROG2 Tenta 2013-06-07 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2 DSV SU/KTH sid 1 (6) PROG2 VT13 PROG2 Tenta 2013-06-07 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 mer

Lektion Händelsehanterare

Lektion 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 mer

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

Subklasser 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 mer

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ä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 mer

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

SMD091 Lektion 9. Definition. Inkapsling. Lite repetition. Grafik. Gränssnitt Definition och Implementation. Sammansättning... Implementation. 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

Läs mer

Tentamen i Objektorienterad programmering

Tentamen 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 mer

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02 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

Läs mer

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

ITK: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 mer

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

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers Föreläsning 10 Mer om grafiska komponenter Händelsestyrda program Layout Managers Utplaceringen av komponenter i en behållare styrs med en layout manager. Det finns olika layout managers: FlowLayout GridLayout

Läs mer

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

Föreläsning 10. Mer om grafiska komponenter Händelsestyrda program. Layout Managers. Exempel: FlowLayout. Klassen FlowLayout Layout Managers Föreläsning 10 Mer om grafiska komponenter Händelsestyrda program Föreläsn Utplaceringen av komponenter i en behållare styrs med en layout manager. Det finns olika layout managers: FlowLayout

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen 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 mer

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

Repetitionsfö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 mer

TDDE10 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 TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Objektorienterad analys, Objektorienterad design Grafiskt användargränssnitt,

Läs mer

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

Modellsvar 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 mer

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

27. GUI Programming. Java. Summer 2008 Instructor: Dr. Masoud Yaghini 27. Java Summer 2008 Instructor: Dr. Masoud Yaghini Until now, you have only used dialog boxes and the command window for input and output. You used JOptionPane.showInputDialog to obtain input, and JOptionPane.showMessageDialog

Läs mer

Kungliga 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 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 mer

Frames, menyer och GUI-program

Frames, menyer och GUI-program 15 Frames, menyer och GUI-program Frames En frame-klass Om konstruktorer - igen Funktionella fönster Menyer Popupmenyer GUI-applikationer Dialogrutor Printerutskrift Kap 15: Sid 2 Frames Redan i kapitel

Läs mer

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

Objektorienterad Programmering DAT043. Föreläsning 6 30/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) Objektorienterad Programmering DAT043 Föreläsning 6 30/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Repetion: En GUIapplikation med Swing Huvudklass implementerar Runnable - metoden

Läs mer

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 13 Avsikten med denna laboration är att du ska använda ett par nya grafiska komponenter. Dessutom ska du göra designen utan hjälp av en layout-manager (enklare). Börja med att skapa paketet

Läs mer

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

Modellsvar 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 mer

Lab5 för prgmedcl04 Grafik

Lab5 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 mer

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

Föreläsning 13: Swing (GUI), händelser, timer TDA 545: Objektorienterad programmering Föreläsning 13: Swing (GUI), händelser, timer GUI = graphical user interface Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Idag: grafiska gränssnitt; läs kap

Läs mer

Laboration 3 GUI-programmering

Laboration 3 GUI-programmering Laboration 3 GUI-programmering Syfte Erbjuder studenterna en möjlighet att lära sig grunderna i gränssnittsprogrammering i Java. Genomförande Genomförs individuellt eller i grupp om 2 personer. Uppskattad

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen 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 mer

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

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 AWT. Paket för hantering av grafik Fortsättningskurs i programmering F 5 GUI händelsehantering - undantagshantering Hugo Quisbert 20130205 1 Abstract Window Toolkit Paket för hantering av grafik dvs skapa grafisk användargränssnitt java.awt

Läs mer

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

DI-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 mer

Objektorienterad 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) 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 mer

Lösningsförslag till tentamen

Lö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 mer

Klasser för grafik och bildhantering

Klasser för grafik och bildhantering Swing och AWT Fem typer av klasser GUI-komponenter Layout-hanterare Händelser och händelselyssnare Klasser för grafik och bildhantering Objectorienterad programmering Sida 1 AWT AWT = Abstract windowing

Läs mer

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

Fö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 mer

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

Properties. Användbara metoder som kan anropas i propertychanged: Properties Ett objekt kan ha vissa egenskaper (som beskrivs med instansvariabler). En enkel egenskap X avläses och sätts med metoderna getx() och setx(värde). En indexerad egenskap (från t.ex. en array)

Läs mer

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

Två 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 mer

Du ska nu skapa ett litet program som skriver ut Hello World.

Du ska nu skapa ett litet program som skriver ut Hello World. Tidigare har vi gjort all programmering av ActionScript 3.0 i tidslinjen i Flash. Från och med nu kommer vi dock att ha minst två olika filer för kommande övningar, minst en AS-fil och en FLA-fil. AS Denna

Läs mer

Tentamen FYTA11 Javaprogrammering

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 10 Tentamen FYTA11 Javaprogrammering Måndag 10:e januari 2011, 09:00 13:00 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade

Läs mer

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.

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

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

Arv, Grafiska användaregränssnitt och Inre klasser! Förelasning 12!! TDA540 Objektorienterad Programmering! Arv, Grafiska användaregränssnitt och Inre klasser! Förelasning 12!! TDA540 Objektorienterad Programmering! Mer om Arv Har tidigare konstaterat att alla klasser ärver (inherit) klassen Object om inget

Läs mer

PROG2 Tenta 2014-05-02 Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

PROG2 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 mer

Tentamen i Objektorienterad programmering

Tentamen i Objektorienterad programmering CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA547 Tentamen i Objektorienterad programmering Fredagen 13 januari 2012, 14.00 18.00. Jourhavande lärare: Björn von Sydow, tel 0722/391401. Inga hjälpmedel. Lösningar

Läs mer

Klasser och objekt i C#

Klasser och objekt i C# Klasser och objekt i C# Från klassdiagram till C#-klass till objekt initierat av en konstruktor. Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med

Läs mer

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

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - aug - 23 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 3 (15p + 20p + 5p = 40 p) Lärare, jourhavande lärare

Läs mer

Arv och Grafiska Användargränssnitt

Arv och Grafiska Användargränssnitt Arv och Grafiska Användargränssnitt Bildserie 5 Plattform Java är inte bara ett språk utan en s.k. plattform - Förutom språket finns en otrolig mängd färdiga klasser samlade i bibliotek (kallas också API:n,

Läs mer

Arvshierarki. Object. Bostadshus. Flerfamiljshus. Villa

Arvshierarki. Object. Bostadshus. Flerfamiljshus. Villa Arv Arv är en grundläggande objektorienterad teknik för att organisera och återanvända klasser. Med arv kan man definiera en klass utgående från en redan existerande klass. Den nya klassen återanvänder

Läs mer

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll Danny Allen Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Använda Blinken 6 2.1 Starta ett spel........................................ 7 2.2 Skriva in nya högsta poäng................................

Läs mer

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

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? LayoutManagers. Exempel på några av komponenterna. Swing Många klasser MER Java Foundation Classes (JFC) Swing Jättemånga klasser Vettigt att lära sig dem utantill Tror inte det Hur lära sig? Principerna Model - view - controller Observer - observed Öva,

Läs mer

Lösningsförslag tentamen FYTA11 Java

Lösningsförslag tentamen FYTA11 Java Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 10 Lösningsförslag tentamen FYTA11 Java Måndag 10:e januari 2011, 09:00 13:00 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade

Läs mer

5 Användargränssnitt. 5.1 AWT och Swing

5 Användargränssnitt. 5.1 AWT och Swing 5 Användargränssnitt 5.1 AWT och Swing AWT (Abstract Windowing Toolkit) är ett omfattande klassbibliotek för hantering av användargränssnitt i Java. Det är gjort så att applikationerna blir helt plattformsoberoende

Läs mer

Tentamen FYTA11 Javaprogrammering

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Teoretisk fysik HT 11 Tentamen FYTA11 Javaprogrammering Måndag 9:e januari 2012, 10:15 14:15 Instruktioner Hjälpmedel: enkla ritverktyg och Javadoc-genererade

Läs mer

Monday, November 16, Senaste Labben

Monday, November 16, Senaste Labben Senaste Labben Senaste Labben Strålande resultat (mv 4.6)! Senaste Labben Strålande resultat (mv 4.6)! God objektorientering? Senaste Labben Strålande resultat (mv 4.6)! God objektorientering? God kodhygien?

Läs mer

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

Swing. MER Java Foundation Classes (JFC) Hur lära sig? Vad är farorna. Exempel på några av komponenterna. LayoutManagers. Swing Många klasser MER Java Foundation Classes (JFC) Swing Vettigt att lära sig dem utantill Tror inte det... men det kan vara bra att ha en liten överblick över vad som finns Hur lära sig? Principerna

Läs mer

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

LYCKA TILL!!! TENTAMEN I Programmeringsteknik F1. Var vänlig och läs detta: CTH 2007-12-18 TIN 211. DATAVETENSKAP Göteborg (2007-12-17) TENTAMEN DATAVETENSKAP Göteborg (2007-12-17) TENTAMEN CTH 2007-12-18 TIN 211 TENTAMEN I Programmeringsteknik F1 DAG: TISDAG TID: 14.00-18.00 SAL: M Ansvarig: Erland Holmström tel. 1007, hem 270358. Resultat: Anslås

Läs mer

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

MVC-mönstret. model-view-control i Swing MVC-mönstret model-view-control i Swing MVC Tanken bakom MVC (model view control) är att separera uppgifter i ett program från varandra. Model - Den data som behandlas View - Hur användargränssnittet ser

Läs mer

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD I Navigationen hittar du genvägar till funktioner i programmet. För att utnyttja detta på bästa sätt kan du anpassa Navigationen så att det passar ditt sätt att arbeta.

Läs mer

Tentamen i Objektorienterad programmering E

Tentamen 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 mer

Lö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 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

Lösningsförslag till tentamen

Lö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 mer

Lösningsförslag till tentamen

Lösningsförslag till tentamen till tentamen 1 (5) Kurs Objektorienterad programmering Kursbeteckning DAT042 Program D2, TKDAT Läsår 2012/2013, lp 1 Examinator Uno Holmer Uppgift 1 (10 p) Ingen lösning ges. Se kurslitteraturen. Uppgift

Läs mer

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

Swing. MER Java Foundation Classes (JFC) Vad är farorna. Hur lära sig? Exempel på några av komponenterna. LayoutManagers. Swing Många klasser MER Java Foundation Classes (JFC) Swing Vettigt att lära sig dem utantill Tror inte det... men det kan vara bra att ha en liten överblick över vad som finns Idag (och med fortsättning

Läs mer

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

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets GUI (forts) Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets Sven-Olof Nyström Uppsala Universitet 18 mars 2005 Skansholm: Kapitel 6 Användaren kan kommunicera med programmet

Läs mer