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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 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 laboration13. I filen laboration13.zip hittar du fullständiga lösningar. Grundläggande uppgifter Uppgift 13a Uppgiften går ut på att använda ett antal komponenter i ett program. De som används är: 2 st JLabel 1 st JList 1 st JComboBox 2 st JPanel 3 st JRadioButton 5 st JCheckBox 1 st JButton 1 st JTextArea. Dessutom ska du inte använda någon Layout Manager när du designar fönstret. 1. Skapa en grafisk klass Högerklicka paketet laboration13 och välj New JFrame Form Välj namnet Personuppgifter som namn på klassen. Högerklicka i fönstret och välj Set Layout Null layout. Klicka på Code i fönstret nere till vänster och ändra Form Size Policy till Generate Resize Code. 2. JList boende Boende-delen består av en JLabel (texten Boende) och en JList. Placera en JLabel och en JList i fönstret. Inställningar i JList-komponenten är följande (se till att JList-komponenten är vald. Det kan krävas två klick på komponenten): Variable Name lstboende font Arial model Klicka på knappen till höger och ersätt Item 1 med Lägenhet osv (Klicka på Item 1, ersätt Item 1 med Lägenhet, Klicka på Edit). selectionmode SINGLE_INTERVAL selectedindex 0 JLabel-komponenten kan du ändra på egen hand. DA129A, Programmering 1 1

2 3. JComboBox Yrke Yrke-delen består av en JLabel och en JComboBox. Placera en JLabel och en JComboBox i fönstret. Inställningar i JComboBox är följande: Variable Name font model cbyrke Arial 4. JPanel och JRadioButton Ålder Se model under JList. Valbara alternativ kan vara: Studerande, Offentligt anställd, Privat anställd, Pensionär. Om ett antal komponenter ska samlas med någon typ av ram runt dem kan man först placera in en JPanel och sedan placera komponenterna på panelen. Panelen ges en lämplig Border. Placera en JPanel i fönstret. Klicka på knappen till höger om Border i Properties-fönstret. Klicka på Titled Border och gör sedan följande inställningar: Title Ålder Color Välj en färg för kanten och texten Ändra layouten på samma sätt som för fönstret, dvs. högerklicka på panelen och välj Set Layout Null layout i popup-menyn. Nu ska du välja Button Group i paletten och sedan klicka på fönstret. Detta är en osynlig komponent som vi behöver. Placera 3 st JRadioButton-komponenter i panelen. Ändra följande egenskaper: Variable Name rbalder0_17 rbalder18_64 rbalder65 font Arial Arial Arial text buttongroup buttongroup1 buttongroup1 buttongroup1 selected - - JLabel-komponenten kan du ändra på egen hand. 5. JPanel och JRadioButton Hobby Placera en JPanel i fönstret. Gör samma inställningar som under punkt 4. Placera 5 st JCheckBox-komponenter i panelen. Andra följande egenskaper: Variable Name cbidrott cbfolkdans cbfagel cbbridge cbkorsang font Arial Arial Arial Arial Arial text Idrott Folkdans Fågelsång Bridge Körsång 6. JButton och JTextArea Sammanfattning Placera en JButton i fönstret. Du kan själv göra nödvändiga inställningar Placera en JTextArea i fönstret. Ändra komponentens Variable Name till tasammanfattning och ändra font till Arial. I JTextArea-komponenten ska informationen från de andra komponenterna sammanställas. Skapa en händelsehanterare till knappen (Events actionperformed). Skriv in följande kod i händelsehanteraren: String txt = "Boende: " + lstboende.getselectedvalue() + "\n" + "Yrke: " + cbyrke.getselecteditem() + "\n" + "Ålder: " + getålder() + "\n" + "Hobby: " + hobbylista(); tasammanfattning.settext( txt ); 2

3 Som du ser anropas två metoder i ovanstående kod, nämligen getålder() och hobbylista(). Metoden getålder ska returnera någon av strängarna 0 17, och 65. Metoden hobbylista() ska returnera samtliga hobbies med ett blanktecken mellan dem. Nedan ser du min version av metoderna: private String hobbylista() { String res = ""; if( cbidrott.isselected() ) { res += " " + cbidrott.gettext(); if( cbfolkdans.isselected() ) { res += " " + cbfolkdans.gettext(); if( cbfagelskadning.isselected() ) { res += " " + cbfagelskadning.gettext(); if( cbbridge.isselected() ) { res += " " + cbbridge.gettext(); if( cbkorsang.isselected() ) { res += " " + cbkorsang.gettext(); return res; private String getålder() { if( rbalder0_17.isselected() ) { return "0-17"; else if( rbalder18_64.isselected() ) { return "18-65"; else { return "65 -"; Nu är det dags att testköra programmet (om du inte redan har gjort det). 3

4 Uppgift 13b Uppgiften handlar om att visa bilder. I ett fönster (det högra) väljer användaren bild som ska visas i en JList-komponent. I det vänstra fönstret visas den valda bilden. Uppgiften har stora likheter med föreläsningens exempel. Controller Ovanstående bild kan även beskrivas med hjälp av klassdiagram: ImageViewer +ImageViewer() +showimage( String ) +noimage() Controller - viewer : ImageViewer - chooser : ImageChooser +Controller( ImageViewer, ImageChooser) +newimage( String ) +eraseimage() ImageChooser - controller : Controller +ImageChooser() +setcontroller( Controller ) ImageViewer Börja med att skapa en fönsterklass som du döper till ImageViewer. Sätt layouten till Null layout Placera en JLabel-komponent som täcker nästan hela fönstret. Det är i denna komponent som bilder ska visas. Glöm inte att ge JLabel-komponenten ett bra namn, t.ex. lblimage. ImageViewer-klassen ska inte ha några instansvariabler. Klassen används endast för att visa bilder (genom anrop till någon av metoderna showimage( String ) eller noimage(). public void noimage() ska ta bort bilden som visas och i stället visa texten INGEN BILD VALD i JLabel-komponenten. lblimage.seticon( null ); // ta bort bild lblimage.settext( "INGEN BILD VALD" ); public void showimage( String ) tar emot sökvägen till en bildfil vilken ska visas i JLabel-komponenten. lblimage.settext( ); // ta bort text som visas lblimage.seticon( new ImageIcon( filename ) ); 4

5 Du kan testa ImageViewer-klassen genom att ändra main-metoden i klassen till: public static void main(string args[]) { java.awt.eventqueue.invokelater(new Runnable() { public void run() { String filename = "C:/bilder/filmlogga.jpg"; ImageViewer viewer = new ImageViewer(); viewer.setvisible( true ); viewer.showimage( filename ); // eller: viewer.noimage(); ); ImageChooser, del 1 Börja med att skapa en fönsterklass som du döper till ImageChooser. Sätt layouten till Null layout Placera en JListkomponent och en JButton-komponent i fönstret. Ge JListkomponenten ett bra namn och gör övriga nödvändiga ändringar i designen (se Uppgift 13a). ImageChooser-klassen har en instansvariabel, nämligen referens till ett Controller-objekt: private Controller controller; Eftersom du inte skrivit klassen Controller kommer det bli en röd markering till vänster om raden. Den försvinner snart! Klassen ska innehålla en set-metod till instansvariabeln controller: public void setcontroller( Controller incontroller ) { this.controller = incontroller; Även metoden drabbas tillfälligt av ett par rödmarkeringar. ImageChooser-klassen ska också ha lite händelse-hantering. Något ska ju hända när användaren klickar på knappen eller på en rad i listan. Vi väntar med händelse-hanteringen till ImageChooser, del 2. Controller Börja med att skapa en vanlig java-klass som du döper till Controller. Du ska lägga till två instansvariabler i klassen, en konstruktor och två metoder. Dessa beskrivs nedan. Instansvariabler Controller-klassen har två referenser. En referens till ett ImageViewer-objekt (instansvariabeln viewer) och en referens till ett ImageChooser-objekt (instansvariabeln chooser). private ImageViewer viewer; private ImageChooser chooser; Konstruktor Controller-objektet får referenser till instansvariabler när det skapas: ImageChooser chooser = new ImageChooser(); ImageViewer viewer = new ImageViewer(); Controller cont = new Controller( viewer, chooser ); 5 Controller - viewer : ImageViewer - chooser : ImageChooser +Controller( ImageViewer, ImageChooser) +newimage( String ) +eraseimage()

6 Dessa referenser ska lagras i instansvariablerna. Dessutom måste ImageChooser-objektet ha en referens till Controller-objektet. Slutligen ska ImageViewer-objektet och ImageChooserobjktet göras synliga: public Controller( ImageViewer inviewer, ImageChooser inchooser ) { this.viewer = inviewer; this.chooser = inchooser; chooser.setcontroller( this ); // this = referens till Controller-objektet viewer.setvisible( true ); chooser.setvisible( true ); Metoder Controllerklassen har två metoder: newimage( String ) vilken tar emot sökvägen till en bildfil (t.ex. C:/temp/sommar.jpg ). Metoden ska kontrollera att bildfilen är av korrekt typ (jpg, gif eller png). Om bildfilen är av korrekt typ så ska metoden anropa metoden showimage( String ) i ImageViewer-objektet. Om bildfilen är av otillåten typ så ska ett felmeddelande visas (figur till höger). public void newimage( String filename ) { int lastdot = filename.lastindexof( '.' ); String suffix = filename.substring( lastdot+1 ); suffix = suffix.tolowercase(); // alla tecken små bokstäver if( suffix.equals("jpg") suffix.equals("gif") suffix.equals("png") ) { viewer.showimage( filename ); else { JOptionPane.showMessageDialog( null, "Felaktig filtyp: " + suffix ); eraseimage() vilken ska anropa metoden noimage() i ImageViewer-objektet. public void eraseimage() { viewer.noimage(); Du kan testa Controller-klassen med följande main-metod. Endast en av de tre sista raderna ska vara aktiv vid exekvering (test av olika fall). public static void main(string[] args) { ImageChooser chooser = new ImageChooser(); ImageViewer viewer = new ImageViewer(); Controller cont = new Controller( viewer, chooser ); cont.newimage( "C:/bilder/filmlogga.jpg" ); // cont.newimage( "C:/bilder/karta.bmp" ); // ej tillåten filtyp // cont.eraseimage(); ImageChooser, del 2 Nu är det dags att införa händelsehantering i ImageChooser-klassen. Vid klick på knappen ska metoden eraseimage() anropas i Controller-klassen. controller.eraseimage(); Vid klick på rad i listan ska metoden newimage anropas i Controllerklassen. För att lyssna på klick i listan ska du använda händelsen valuechanged. Antalet case i switch-satsen beror på antalet rader i listan. Exemplet nedan förutsätter fem 6

7 rader i listan. Låt gärna en av bildfilerna vara av felaktig typ, t.ex. en bmp-fil. String filename = null; int index = lstimages.getselectedindex(); switch( index ) { case 0 : filename = "C:/bilder/london06.jpg"; break; case 1 : filename = "C:/bilder/filmlogga.jpg"; break; case 2 : filename = "C:/bilder/LugiP93DMPB2.jpg"; break; case 3 : filename = "C:/bilder/tandem1.jpg"; break; case 4 : filename = "C:/bilder/karta1.bmp"; break; controller.newimage( filename ); Nu är det dags att testköra programmet. När det fungerar ska du förvissa dig om att du förstår hur anropen går till: 1. Från klick på list-element till visning av bild / felmeddelande. 2. Från klick på knappen till visningen av texten INGEN BILD VALD. 3. Vid konstruktion hur klasserna får nödvändiga refrenser till varandra. 7

8 Fördjupande uppgifter Uppgift 13c Placera en JLabel och en JPanel i ett fönster. JLabel-komponenten ska visa musmarkörens position när den förs över JPanel-komponenten. I denna uppgift ska du lyssna på musrörelser över en komponent. Du ska lyssna på Jpanel-komponenten och du ska använda händelsen mousemoved. För att få reda på x-värde respektive y-värde anropar du metoden getx resp gety i MouseEvent-objektet (i händelsehanteraren), t.ex.: int x = evt.getx(); Sedan ser du till att x- respektive y-värdet visas i JLabel-komponenten. Förbättring 1: När musmarkören lämnar panelen ska texten tömmas. Lyssna på händelsen mouseexited. När den inträffar så ska du tömma texten. Förbättring 2: När musmarkören är över panelen ska den vara ett kors men annars den normala markören. Lyssna på händelserna mouseentered respektive mouseexited. Vid mouseentered så ändra markör med: setcursor( new java.awt.cursor(java.awt.cursor.crosshair_cursor) ); Vid mouseexited så ändra markör med: setcursor( new java.awt.cursor(java.awt.cursor.default_cursor) ); Uppgift 13d Placera en JButton i ett fönster. Uppmana användaren att klicka på knappen. Men du ska se till att kanppen flyttar sig så fort som användaren rör musmarkören över kanppen. Ledning: Knappen flyttas genom anrop till setlocation-metoden. Knappens nya position ska slumpas. Men se till att knappen inte hamnar utanför fönsterytan. Lyssna på knappen med mousemoved. 8

9 Extra uppgift Uppgift 12e Ej färdig 9

10 Lösningsförslag Uppgift 13a vissa delar av klassen package laboration13; public class Personuppgifter extends javax.swing.jframe { private String hobbylista() { String res = ""; if( cbidrott.isselected() ) { res += " " + cbidrott.gettext(); if( cbfolkdans.isselected() ) { res += " " + cbfolkdans.gettext(); if( cbfagelskadning.isselected() ) { res += " " + cbfagelskadning.gettext(); if( cbbridge.isselected() ) { res += " " + cbbridge.gettext(); if( cbkorsang.isselected() ) { res += " " + cbkorsang.gettext(); return res; private String getålder() { if( rbalder0_17.isselected() ) { return "0-17"; else if( rbalder18_64.isselected() ) { return "18-65"; else { return "65 -"; private void btnsammanfattaactionperformed(java.awt.event.actionevent evt) { String txt = "Boende: " + lstboende.getselectedvalue() + "\n" + "Yrke: " + cbyrke.getselecteditem() + "\n" + "Ålder: " + getålder() + "\n" + "Hobby: " + hobbylista(); tasammanfattning.settext( txt ); // Variables declaration - do not modify private javax.swing.jbutton btnsammanfatta; private javax.swing.buttongroup buttongroup1; private javax.swing.jcheckbox cbbridge; private javax.swing.jcheckbox cbfagelskadning; private javax.swing.jcheckbox cbfolkdans; private javax.swing.jcheckbox cbidrott; private javax.swing.jcheckbox cbkorsang; private javax.swing.jcombobox cbyrke; private javax.swing.jlabel jlabel1; private javax.swing.jlabel jlabel2; private javax.swing.jpanel jpanel1; private javax.swing.jpanel jpanel2; private javax.swing.jscrollpane jscrollpane1; private javax.swing.jscrollpane jscrollpane2; private javax.swing.jlist lstboende; private javax.swing.jradiobutton rbalder0_17; private javax.swing.jradiobutton rbalder18_64; private javax.swing.jradiobutton rbalder65; private javax.swing.jtextarea tasammanfattning; // End of variables declaration 10

11 Uppgift 13b delar av klasserna package laboration13; import javax.swing.*; public class ImageViewer extends javax.swing.jframe { public void showimage( String filename ) { this.settitle( filename ); lblimage.settext( "" ); lblimage.seticon( new ImageIcon( filename ) ); public void noimage() { lblimage.settext( "INGEN BILD VALD" ); lblimage.seticon( null ); public static void main(string args[]) { java.awt.eventqueue.invokelater(new Runnable() { public void run() { String filename = "C:/bilder/filmlogga.jpg"; ImageViewer viewer = new ImageViewer(); viewer.setvisible( true ); viewer.showimage( filename ); // viewer.noimage(); ); // Variables declaration - do not modify private javax.swing.jlabel lblimage; // End of variables declaration package laboration13; public class ImageChooser extends javax.swing.jframe { private Controller controller; public void setcontroller( Controller incontroller ) { this.controller = incontroller; private void lstimagesvaluechanged(javax.swing.event.listselectionevent evt) { String filename = null; int index = lstimages.getselectedindex(); switch( index ) { case 0 : filename = "C:/bilder/london06.jpg"; break; case 1 : filename = "C:/bilder/filmlogga.jpg"; break; case 2 : filename = "C:/bilder/LugiP93DMPB2.jpg"; break; case 3 : filename = "C:/bilder/tandem1.jpg"; break; case 4 : filename = "C:/bilder/karta1.bmp"; break; controller.newimage( filename ); private void btneraseactionperformed(java.awt.event.actionevent evt) { controller.eraseimage(); 11

12 // Variables declaration - do not modify private javax.swing.jbutton btnerase; private javax.swing.jscrollpane jscrollpane1; private javax.swing.jlist lstimages; // End of variables declaration package laboration13; import javax.swing.*; public class Controller { private ImageViewer viewer; private ImageChooser chooser; public Controller( ImageViewer inviewer, ImageChooser inchooser ) { this.viewer = inviewer; this.chooser = inchooser; chooser.setcontroller( this ); viewer.setvisible( true ); chooser.setvisible( true ); public void newimage( String filename ) { int lastdot = filename.lastindexof( '.' ); String suffix = filename.substring( lastdot+1 ); suffix = suffix.tolowercase(); // alla tecken små bokstäver if( suffix.equals( "jpg") suffix.equals( "gif" ) suffix.equals( "png" ) ) { viewer.showimage( filename ); else { JOptionPane.showMessageDialog( null, "Felaktig filtyp: " + suffix ); public void eraseimage() { viewer.noimage(); public static void main(string[] args) { ImageChooser chooser = new ImageChooser(); ImageViewer viewer = new ImageViewer(); Controller cont = new Controller( viewer, chooser ); cont.newimage( "C:/bilder/filmlogga.jpg" ); cont.newimage( "C:/bilder/karta.bmp" ); // ej tillåten filtyp cont.eraseimage(); 12

13 Uppgift 13c delar av klassen package laboration13; public class Uppgift13c extends javax.swing.jframe { private void pnlmovesmouseentered(java.awt.event.mouseevent evt) { setcursor( new java.awt.cursor(java.awt.cursor.crosshair_cursor) ); // Förbättring 2 private void pnlmovesmouseexited(java.awt.event.mouseevent evt) { lblkoordinater.settext( "" ); // Förbättring 1 setcursor( new java.awt.cursor(java.awt.cursor.default_cursor) ); // Förbättring 2 private void pnlmovesmousemoved(java.awt.event.mouseevent evt) { int x = evt.getx(); int y = evt.gety(); lblkoordinater.settext( String.format( "( %1d, %1d )", x, y ) ); // Variables declaration - do not modify private javax.swing.jlabel lblkoordinater; private javax.swing.jpanel pnlmoves; // End of variables declaration Uppgift 13d delar av klassen package laboration13; public class Uppgift13d extends javax.swing.jframe { private void btnmovemousemoved(java.awt.event.mouseevent evt) { // Slumpvärde: min 0, max fönsterbredd knappbredd int x = (int)( Math.random() * 280 ); // Slumpvärde: min 0, max fönsterhöjd knapphöjd int y = (int)( Math.random() * 250 ); btnmove.setlocation( x, y ); // Variables declaration - do not modify private javax.swing.jbutton btnmove; // End of variables declaration 13

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 12 Avsikten med denna laboration är att du ska göra några grafiska program. Börja med att skapa paketet laboration 12. Grundläggande uppgift Uppgift 12a Uppgiften går ut på att göra en enkel

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

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

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

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

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

Kort 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 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

Laboration 10 - Eclipse

Laboration 10 - Eclipse Laboration 10 - Eclipse Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass

Läs mer

Malmö högskola 2008/2009 CTS

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

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

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

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

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

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

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

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

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 )

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

Lösningar för tenta 3 DAT043,

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

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

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

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

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 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 mer

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

Laboration 13, Arrayer och objekt

Laboration 13, Arrayer och objekt Laboration 13, Arrayer och objekt Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration13 i ditt laborationsprojekt innan du fortsätter med laborationen. Uppgift

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

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

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

Lösningsförslag övning 2.

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

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

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

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

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

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

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

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

Läs mer

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

Föreläsning 5-6 Innehåll. 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 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

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

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

Föreläsning 5-6 Innehåll

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

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

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

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

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

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

Malmö högskola 2007/2008 Teknik och samhälle Laboration 8 Avsikten med denna laboration ä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 mer

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. 1 (8) DUGGA: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt namn, personnummer och e-postadress på försättsbladet. Skriv rent dina svar.

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

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

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

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

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 Lösningsförslag till tentamen 140423 a) Vad kompilatorn klagar på är att metoden Math.sqrt() inte finns! Detta kan ju verka något mystiskt eftersom vi alla vet att det i klassen Math finns en

Läs mer

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

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

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

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

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

public och private Obs: private inte skyddar mot access från andra objekt i samma klass. public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private

Läs mer

ID1004 Laboration 3, 5-6 November 2012

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

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

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

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Malmö högskola 2012/2013 Teknik och samhälle

Malmö högskola 2012/2013 Teknik och samhälle Laboration 5 Avsikten med laborationen är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration5. Uppgifterna är lätt matematiska

Läs mer

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

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor 1 Laboration 4 - Introduktion Syfte: Öva på självständig problemlösning

Läs mer

725G61 - Laboration 8 Ett enkelt GUI. Sahand Sadjadee och Johan Falkenjack

725G61 - Laboration 8 Ett enkelt GUI. Sahand Sadjadee och Johan Falkenjack 725G61 - Laboration 8 Ett enkelt GUI Sahand Sadjadee och Johan Falkenjack December 20, 2013 1 Inledning I de tidigare labbarna har ni fått lära er grundläggande programmering och objektorientering samt

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

Laboration 24 Databasen MySQL och java

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

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

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

Windows Forms Winstrand Development

Windows Forms Winstrand Development 2013-01-23 1 Winstrand Development Användargränssnitt Hittills har vi skapat program för kommandoraden. Den bakomliggande koden fungerar som den ska, men vi upptäcker snabbt att programmen är begränsade

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

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

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

Objektorienterad programmering i Java

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

Lösningar till tentamen i EDAF25

Lösningar till tentamen i EDAF25 Lösningar till tentamen i EDAF25 1 juni 2017 Lösning 1 Se figur 1. Figure 1: Tillståndsdiagram espressomaskin Lösning 2 (a) Kompositmönstret (b) Se figur 2 (c) Se figur 3 : Square : Drawing : Group : Circle

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

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

Det 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 2012-09-01 Skrivtid: 0900-1200 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 mer

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl

TENTAMEN. Kurs: Applikationsutveckling i Java 5DV135. Ansvarig lärare: Johan Eliasson. HT12 Datum: Tid: kl UMEÅ UNIVERSITET Institutionen för Datavetenskap 13-04-04 TENTAMEN Kurs: Applikationsutveckling i Java 5DV135 Ansvarig lärare: Johan Eliasson HT12 Datum: 13-04-04 Tid: kl 9.00-13.00 Namn: Personnummer:

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer

Lösningsförslag till exempeltenta 2

Lösningsförslag till exempeltenta 2 Lösningsförslag till exempeltenta 2 1 1. Beskriv hur man kan söka igenom en tvådimensionell array. Beskriv pseudokoden och förklara så klart som möjligt hur den fungerar. Lösning: Se laboration 3. - Beskriv

Läs mer

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

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Laboration 10 - NetBeans

Laboration 10 - NetBeans Laboration 10 - NetBeans Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass

Läs mer

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 Lösningsförslag till tentamen 131220 a) Första felet beror på att namnet på klassen är felstavat i konstruktorn! Således har vi ingen konstruktor utan en metod med namnet Trubel. En metod måste

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

Laboration 1 - Grunderna för OOP i Java

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

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

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

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

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska

Läs mer

Presentation av trafiksimuleringsprojektet

Presentation av trafiksimuleringsprojektet (27 februari 2017 Trafiksimulering 1 ) Presentation av trafiksimuleringsprojektet Skall diskutera Ett lite större program med flera klasser Hur man designar ett system Hur man ritar klassdiagram i UML

Läs mer

Java, klasser, objekt (Skansholm: Kapitel 2)

Java, klasser, objekt (Skansholm: Kapitel 2) Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma

Läs mer

Lösningsförslag till tentamen 150317

Lösningsförslag till tentamen 150317 Uppgift 1 Lösningsförslag till tentamen 150317 1) Sant 2) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser.) 3) Falskt. Det är TCP som använder sig av en fast kommunikationsförbindelse.)

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 5 Avsikten med laborationen är att du ska träna på att använda iterationer i dina program. I vanlig ordning placerar du dina lösningar i paketet laboration5. Uppgifterna är lätt matematiska

Läs mer

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall

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

JAVA Mer om klasser och objektorientering

JAVA 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 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

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

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

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

4 13 / %.; 8 </ '':  / //&'   ' * TelefonKostnad +,-%&. #! $%  &' . > / ' 5 /' * 13/ &' static Math 1+ &'/ % 12  static ' * 1 /) %& & TelefonKostnad static Math static $ & )&* +,-&. 0 +& + & 3 356+573 ) & & 6 3 3 & 3 * 6 3.:; < = 3 = 6 ; < : & >?.;,;@.A@;0,0,? @B0 C,0 > *. > 5 C D & D 5 * &! ; 66C! * C, 0 E,&! 0 F,G0 >: = = C 3 & HI

Läs mer