Laboration 15 Grafiskt användargränssnitt

Storlek: px
Starta visningen från sidan:

Download "Laboration 15 Grafiskt användargränssnitt"

Transkript

1 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 som t.ex. fönster och knappar. Uppgift 1 - FCKonverterare Du ska skriva ett program vilket låter användaren mata in ett antal grader låter användaren klicka på typ av konvertering, dvs. från Celsius till Fahrenheit eller från Fahrenheit till Celsius. Visar resultatet av konverteringen (rad två i figuren) Låter användaren avsluta programmet genom att klicka på Avsluta -knapp. Steg 1 Skapa projekt + klass Skapa en klass, FCKonverterare, i ett lämpligt projekt. Glöm inte extends JFrame. Se till att nödvändiga paket importeras (javax.swing, java.awt, java.awt.event) import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FCKonverterare extends JFrame { public FCKonverterare() { Steg 2 Vilka komponenter behövs i programmet? Gör en lista över dem. Om vi tittar på figuren ovan så ser vi följande komponenter (uppifrån och ner): JLabel (Grader) + JTextField (Inmatningsfönstret) JLabel (Resultatutskrift) JButton (Fahrenheit ) + JButton (Celsius ) JButton (Avsluta) Skriv in dessa komponenter som attribut i klassen. private JButton ftoc = new JButton("Fahrenheit till Celsius"); private JButton ctof = new JButton("Celsius till Fahrenheit"); private JButton exit = new JButton("Avsluta"); private JLabel label = new JLabel("Grader "); private JLabel result = new JLabel("Resultat: "); private JTextField degrees = new JTextField(); DA129A, Programmering 1 1

2 Steg 3 Hur ska komponenterna placeras ut? Nedanstående skriver du i konstruktorn. Om vi tittar på figuren ovan så verkar den vara uppbyggd av 4 rader. Det innebär att en GridLayout med 4 rader och en kolumn verkar lämplig i huvudcontainern. Container c = getcontentpane(); c.setlayout(new GridLayout(4,1)); Den översta raden har två komponenter. Det innebär att vi behöver en panel att placera dem på. Den vänstra tar den storlek den behöver och den högra tar resten. Detta passar för en BorderLayout med JLabel i WEST och JTextField i CENTER. JPanel firstrow = new JPanel(new BorderLayout()); Rad 3 består av två knappar vilka ska ta lika stor plats båda två. Vi behöver en panel med GridLayout med två kolumner att placera knapparna på. JPanel thirdrow = new JPanel(new GridLayout(1,2)); Nu är det dags att placera komponenterna. firstrow.add(label,borderlayout.west); firstrow.add(degrees,borderlayout.center); thirdrow.add(ftoc); thirdrow.add(ctof); c.add(firstrow); c.add(result); c.add(thirdrow); c.add(exit); Steg 4 Fönstrets ska ha en storlek och fönstret ska vara synligt. setsize(350,130); setvisible(true); Steg 5 Testkör designen. Är du nöjd eller ska du göra förändringar? Nu kan du testa med andra inställningar. T.ex. annan fönsterstorlek, bakgrundsfärg/förgrundsfärg på olika komponenter osv. public static void main(string[] args) { FCKonverterare fck = new FCKonverterare(); Händelsehantering. Användaren ska ju kunna använda programmet, något ska hända vid klick på någon av knapparna, så nu är det dags att implementera händelsehantering. Först gör vi en lista på olika händelser som användaren ska kunna generera. Följande händelser ska användaren kunna generera: Klick på Celsius till Fahrenheit -knappen varvid graderna i inmatningsfönstret ska omvandlas till fahrenheitgrader. Klick på Fahrenheit till Celsius -knappen varvid graderna i inmatningsfönstret ska omvandlas till celsiusgrader. Klick på Avsluta-knappen varvid programmet ska avslutas. 2

3 Samtliga händelser fångas bäst med en ActionListener. Följande ska du göra: Låta klassen implementera ActionListener public class FCKonverterare extends JFrame implements ActionListener { Skriva metoden actionperformed i klassen public void actionperformed(actionevent e) { Koppla knapparna så att actionperformed anropas vid klick på dem. Skriv nedanstående rader i konstruktorn. ctof.addactionlistener(this); ftoc.addactionlistener(this); exit.addactionlistener(this); Nu är ramverket klart och vi kan skriva in den kod som ska exekveras då användaren klickar på en knapp. Celsius till Fahrenheit -knappen Innehållet i inmatningsfönstret ska hämtas genom anrop till metoden gettext(). Metoden returnerar en sträng (String). Denna sträng måste konverteras till ett decimaltal. Metoden Double.parseDouble(String) kan du använda för konverteringen. Metoden returnerar en double. Celsiusgraderna ska räknas om till fahrenheitgrader. Formeln F = C är användbar till detta. Slutligen ska innehållet i resultat-lablen ändras. Detta görs genom anrop till metoden settext(string). public void actionperformed(actionevent e) { double deg, res; if(e.getsource()==ctof) { // Klick på ctof? res = *deg; result.settext("resultat: "+deg+" C är "+res+" F"); Fahrenheit till Celsius -knappen Samma steg som ovan ska tas. Men formeln för beräkning av celsiusgrader är annorlunda: C = (F 32)/1.8. public void actionperformed(actionevent e) { double deg, res; if(e.getsource()==ctof) { res = *deg; result.settext("resultat: "+deg+" C är "+res+" F"); else if(e.getsource()==ftoc) { // klick på ftoc? res = (deg-32)/1.8; result.settext("resultat: "+deg+" F är "+res+" C"); 3

4 Avsluta -knappen Programmet ska avslutas när användaren klickar på denna knapp. public void actionperformed(actionevent e) { double deg, res; if(e.getsource()==ctof) { res = *deg; result.settext("resultat: "+deg+" C är "+res+" F"); else if(e.getsource()==ftoc) { res = (deg-32)/1.8; result.settext("resultat: "+deg+" F är "+res+" C"); else if(e.getsource()==exit) { // klick på exit-knapp System.exit(0); Nu är eventuellt programmet färdigt. Testkör det och experimentera gärna med olika ändringar. 4

5 Uppgift 2 FCKonverterare I denna uppgift ska du göra om applikationen i Uppgift 1 till en applet. Detta är ganska enkelt men man får tänka sig för. Följande ska du göra: Gå ut i Utforskaren och skapa en kopia av FCKonverterare.java. Döp kopian till FCApplet.java. Flytta kopian till src-katalogen (den är förmodligen i katalogen laboration15). Om du använder JBuilder ska du uppdatera projektet. Nu dyker FCApplet.java upp i projektfönstret. Du ska göra en del förändringar i innehållet i FCApplet.java. Ta bort package laboration15; Ändra så att klassen heter FCApplet och ärver JApplet. public class FCApplet extends JApplet implements ActionListener { Ta bort attributet exit. En applet kan inte avslutas användaren byter sida. private JButton exit = new JButton("Avsluta"); Ändra konstruktorhuvudet (public FCKonverterare()) till public void init() { Ta bort raderna exit.addactionlistener(this); // exit används inte mer. c.add(exit); // exit används inte mer. setsize(350,130); // appleten får sin storlek via html-sidan setvisible(true); // browsern ser till att appleten blir synlig Ändra huvudcontainerns GridLayout till 3 rader (ingen Avsluta -knapp) c.setlayout(new GridLayout(3,1)); Ta bort exit-koden ur actionperformed else if(e.getsource()==exit) { System.exit(0); Nu är det dags att testköra appleten. Börja med att skapa en fil med namnet FCApplet.html i src-katalogen. * netbeans: Högerklicka Source Packages och välj New HTML File. Skriv namnet FCApplet och klicka på Finish. * JBuilder: Välj File New File, skriv in ett lämpligt namn (t.ex. FCApplet), välj typen html och se till att src-katalogen i ditt projekt är vald (automatiskt). Klicka på OK. Skriv in nedanstående APPLET-tagg i FCApplet.html: <APPLET CODE="FCApplet.class" WIDTH="350" HEIGHT="100"> </APPLET> Testkör appleten genom att i * netbeans: Högerklicka FCApplet.java och välj Run File * JBuilder: Högerklicka FCApplet.html och välj Run using defaults Om allt ser ut som det ska och fungerar korrekt är det dags med Uppgift 3. 5

6 Uppgift 3 Appleten körs via browsern För att testköra appleten från en webserver så kan du utnyttja katalogen public_html här på MAH. Du har katalogen på enhet M. Nu ska du placera filerna FCApplet.class (finns i classes) och FCApplet.html (finns i src) i katalogen public_html som finns på enhet M. Enhet M om du jobbar hemifrån Om du jobbar med laborationen utanför Malmö högskola så når du ditt utrymme med hjälp av ftp, t.ex. via Internet Explorer (skriv i adressfältet): ftp://ftphome.mah.se Nu får du logga in med ditt användarnamn och lösenord. Kopiera filerna FCApplet.class och FCApplet.html från din dator till public_html. Testa appleten Testa din applet med att hämta hem dokumentet FCApplet.html via din browser. Du når dokumentet på adressen homeweb.mah.se/~xxxxxx/fcapplet.html där xxxxxx står för din nätverksidentitet. (användarnamn) Du får gärna placera filerna i en underkatalog, t.ex. lab7. I detta fall når du html-dokumentet med homeweb.mah.se/~xxxxxx/lab7/fcapplet.html Dags att testa om appleten startar! Men du måste använda en browser med Java2-plug. Detta är vanligt i dessa dagar. 6

7 Uppgift 4 Mushändelser Man kan fånga musklick på diverse komponenter, och även fånga händelsen att musmarkören förs in över en komponent eller förs ut från en komponent. Detta ska exemplifieras i denna uppgift. Slutresultatet kommer att likna figuren till höger. Om man klickar på en rektangel med en siffra så kommer denna siffra att läggas till i den översta raden. Om man klickar på <- så tas den sista siffran bort från raden (om det finns några siffror). Om man klickar på Del så tas alla siffror bort från raden. Om man för musmarkören över någon av komponenterna så kommer innehållet att visas på statusraden. Och när man tar bort musmarkören från komponenten så töms statusraden. Programmet består av 12 st JLabel med röd bakgrund. De har dessutom försetts med en border. Överst och underst är det ytterligare två JLabel, en med svart bakgrund, vit text och grå border och en med fönstrets bakgrundfärg och svart text (default-inställningar). Ett skal till programmet import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.border.*; // Behövs för knapp -border public class MouseEventsEx extends JPanel implements MouseListener { När programmet är färdigt kan du starta det med main-metoden: public static void main( String[] args ) { JFrame frame = new JFrame(); MouseEventsEx panel = new MouseEventsEx(); frame.setsize( 300, 170 ); frame.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); frame.getcontentpane().add( panel ); frame.setvisible( true ); Instansvariabler Alla komponenter som man ska referera till måste vara instansvariabler. Detta gäller inte komponenter som genererar händelser om de endast refereras i samband med händelserna. Endast den översta och den understa JLabel-komponenten behöver vara instansvariabler. Varför knapp -lablarna inte behöver vara instansvariabler ser du i händelsemetoderna. Lägg till instansvariablerna result och statusbar. private JLabel result = new JLabel( " " ); private JLabel statusbar = new JLabel( "No event" ); 7

8 Konstruktorn I konstruktorn designar vi panelen. En extra panel, med GridLayout (rader och 6 kolumner), används för att hålla knapp -lablarna.. Extra-panelen placeras i CENTER, result-labeln i NORTH och statusbar i SOUTH. public MouseEventsEx () { // Lokal variabler statusbar JLabel label; // Fält med knapparnas etiketter. Endast för att förenkla designen. String[] labels = {"0","1","2","3","4","<-","5","6","7","8","9","Del"; // Panel för de tolv "knapparna". 2 rader med 6 kolumner i vardera JPanel labelpanel = new JPanel( new GridLayout( 2, 6 ) ); Font font = new Font( "SansSerif", Font.BOLD, 16 ); // Design-del // De tolv JLabel-komponenterna skapas, designas, kopplas och placeras. // Detta sker en i taget. for (int i = 0; i < labels.length; i++) { label = new JLabel( labels[i], JLabel.CENTER ); // skapa JLabel label.addmouselistener( this ); // muslyssnare i denna klass label.setbackground( Color.red ); // röd bakgrundgärg label.setopaque( true ); // syns endast om JLabel göres tät label.setfont( font ); // större font än default-fonten // Varje knapp ska ha en border label.setborder(borderfactory.createbevelborder(bevelborder.raised)); labelpanel.add( label ); // Placera knappen på panelen result.setfont( font ); result.setforeground( Color.white ); // Textfärg result.setbackground( Color.black ); // Bakgrundsfärg result result.setopaque( true ); // Bakgrundsfärgen ska synas result.setborder(borderfactory.createlineborder(color.lightgray, 3)); result.setpreferredsize(new Dimension(200,30)); // Avmarkera och se! // Komponenter placeras i huvudpanelen (den ärvda panelen) setlayout( new BorderLayout() ); // Borderlayout är lämplig add( result, BorderLayout.NORTH ); add( labelpanel, BorderLayout.CENTER ); add( statusbar, BorderLayout.SOUTH ); Händelsehantering Nu återstår händelsehantering, dvs reagera på musklick och musrörelser in över och ut från komponenter. När en klass implementerar MouseListener så måste fem metoder finnas i klassen nämligen: public void mouseclicked(mouseevent e) { public void mousepressed(mouseevent e) { public void mousereleased(mouseevent e) { public void mouseentered(mouseevent e) { public void mouseexited(mouseevent e) { I programmet är det mousepressed, mousereleased, mouseentered och mouseexited som innehåller kod. 8

9 mousepressed mousepressed används när du ska registrera musklick på en komponent. Man lockas att använda mouseclicked men det ska man undvika. Funktionaliteten försämras nämligen avsevärt om du använder mouseclicked. public void mousepressed(mouseevent e) { String button = label.gettext(); // Text i klickad komponent String content = result.gettext(); // Innehåll i result-label statusbar.settext( "mousepressed on " + label.gettext() ); if(button.equals("del")) { // Del, Töm result-label på innehåll result.settext(""); // <-, ta bort ett tecken om det finns något tecken else if(button.equals("<-") && button.length()>0) { result.settext(content.substring(0,content.length()-1)); else { // siffra lägg till i result result.settext(content + label.gettext()); Kommentar till mousepressed-metoden: När en händelse genereras så anropas en händelse-hanterare. Du kan alltid erhålla en referens till komponenten som genererade händelsen (här: labeln som klickades) genom e.getsource(). Dock måste du typkonvertera komponenten till korrekt typ: Sedan kan referensen användas på vanligt sätt. mouseentered mouseentered anropas om musmarkören förs in över en komponent. public void mouseentered(mouseevent e) { statusbar.settext( "mouseentered on " + label.gettext() ); mouseexited mouseexited anropas om musmarkören förs bort från en komponent. public void mouseexited(mouseevent e) { statusbar.settext( "mouseexited from " + label.gettext() ); mousereleased mousereleased anropas när ett klick på en komponent avslutas (musknappen släpps upp) public void mousereleased( MouseEvent e ) { statusbar.settext( "mousereleased on " + label.gettext() ); mouseclicked mouseclicked anropas när användaren klickar på en component. Men användaren får inte flytta på musen medan klicket sker. Detta gör metoden svår att använda. public void mouseclicked(mouseevent e) { 9

10 Uppgift 1 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FCKonverterare extends JFrame implements ActionListener { private JButton ftoc = new JButton("Fahrenheit till Celsius"); private JButton ctof = new JButton("Celsius till Fahrenheit"); private JButton exit = new JButton("Avsluta"); private JLabel label = new JLabel("Grader "); private JLabel result = new JLabel("Resultat: "); private JTextField degrees = new JTextField(); public FCKonverterare() { Container c = getcontentpane(); JPanel firstrow = new JPanel(new BorderLayout()); JPanel thirdrow = new JPanel(new GridLayout(1,2)); ctof.addactionlistener(this); ftoc.addactionlistener(this); exit.addactionlistener(this); c.setlayout(new GridLayout(4,1)); firstrow.add(label,borderlayout.west); firstrow.add(degrees,borderlayout.center); thirdrow.add(ftoc); thirdrow.add(ctof); c.add(firstrow); c.add(result); c.add(thirdrow); c.add(exit); setsize(350,130); setvisible(true); public void actionperformed(actionevent e) { double deg, res; if(e.getsource()==ctof) { res = *deg; result.settext("resultat: "+deg+" C är "+res+" F"); else if(e.getsource()==ftoc) { res = (deg-32)/1.8; result.settext("resultat: "+deg+" F är "+res+" C"); else if(e.getsource()==exit) { System.exit(0); public static void main(string[] args) { FCKonverterare fck = new FCKonverterare(); 10

11 Uppgift 2 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class FCApplet extends JApplet implements ActionListener { private JButton ftoc = new JButton("Fahrenheit till Celsius"); private JButton ctof = new JButton("Celsius till Fahrenheit"); private JLabel label = new JLabel("Grader "); private JLabel result = new JLabel("Resultat: "); private JTextField degrees = new JTextField(); public void init() { Container c = getcontentpane(); JPanel firstrow = new JPanel(new BorderLayout()); JPanel thirdrow = new JPanel(new GridLayout(1,2)); ctof.addactionlistener(this); ftoc.addactionlistener(this); c.setlayout(new GridLayout(3,1)); firstrow.add(label,borderlayout.west); firstrow.add(degrees,borderlayout.center); thirdrow.add(ftoc); thirdrow.add(ctof); c.add(firstrow); c.add(result); c.add(thirdrow); public void actionperformed(actionevent e) { double deg, res; if(e.getsource()==ctof) { res = *deg; result.settext("resultat: "+deg+" C är "+res+" F"); else if(e.getsource()==ftoc) { res = (deg-32)/1.8; result.settext("resultat: "+deg+" F är "+res+" C"); 11

12 Uppgift 4 import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.border.*; public class MouseEventsEx extends JPanel implements MouseListener { private JLabel result = new JLabel( " " ); private JLabel statusbar = new JLabel( "No event" ); public MouseEventsEx() { JLabel label; String[] labels = { "0","1","2","3","4", "<-","5","6","7","8","9","Del" ; JPanel labelpanel = new JPanel( new GridLayout(2, 6) ); Font font = new Font( "SansSerif", Font.BOLD, 16 ); for (int i = 0; i < labels.length; i++) { label = new JLabel( labels[i], JLabel.CENTER ); label.addmouselistener( this ); label.setbackground( Color.red ); label.setopaque( true ); label.setfont( font ); label.setborder( BorderFactory.createBevelBorder( BevelBorder.RAISED ) ); labelpanel.add( label ); result.setfont( font ); result.setforeground( Color.white ); result.setbackground( Color.black ); result.setopaque( true ); result.setborder( BorderFactory.createLineBorder( Color.lightGray, 3 ) ); result.setpreferredsize( new Dimension( 200,30 ) ); setlayout( new BorderLayout() ); add( result, BorderLayout.NORTH ); add( labelpanel, BorderLayout.CENTER ); add( statusbar, BorderLayout.SOUTH ); public void mousepressed( MouseEvent e ) { String button = label.gettext(); String content = result.gettext(); statusbar.settext( "mousepressed on " + label.gettext() ); if( button.equals( "Del" ) ) { result.settext( "" ); else if( button.equals( "<-" ) && button.length()>0 ) { result.settext( content.substring( 0, content.length()-1 ) ); else { result.settext( content + label.gettext() ); public void mouseentered( MouseEvent e ) { statusbar.settext( "mouseentered on " + label.gettext() ); 12

13 public void mouseexited( MouseEvent e ) { statusbar.settext( "mouseexited from " + label.gettext() ); public void mousereleased( MouseEvent e ) { statusbar.settext( "mousereleased on " + label.gettext() ); public void mouseclicked( MouseEvent e ) { public class StartUppgift5 { public static void main( String[] args ) { JFrame frame = new JFrame(); MouseEventsEx panel = new MouseEventsEx(); frame.setsize( 300, 170 ); frame.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); frame.getcontentpane().add( panel ); frame.setvisible( true ); 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

070602 kl 10.15-15.15

070602 kl 10.15-15.15 Malmö högskola 1 Tentamen på kursen DA7800, Programmering med Java del II 070602 kl 10.15-15.15 Tillåtna hjälpmedel: En valfri Javabok Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

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

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

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

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

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

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

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

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

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

Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter Grafiskt användargränssnitt (GUI-Graphical User Interface) intro Komponenter De komponenter som vi ska titta lite närmare på den här gången är paneler (JPanel), knappar (JButton), textfält (JTextField).

Läs 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

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

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

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

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

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

lgammal2.txt // Lösningar till gammal tentamen // Uppgift 1 a // Lösningar till gammal tentamen // Uppgift 1 a /* Felet beror på att det är klassen på referensen som avgör vilka metoder man får köra på ett objekt, inte klassen på objektet. På rad 5 i klassen C har

Läs 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

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

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

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

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

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

Applets med komponenter

Applets med komponenter 5 Applets med komponenter Knappar Om gränssnitt (interface) Händelser Måla om appletytan Etiketter och textrutor Förvandla strängar till tal Aritmetik Omvandla datatyper med cast Felhantering Kap 5: Sid

Läs mer

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http. 2I1073 Lektion 2 Servlets, säkerhet, och filhantering KTH-MI Peter Mozelius import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Lektion2a extends HttpServlet { public void

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

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

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Datateknik A, Syfte: Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass. Att läsa: Lektion 2 Uppgifter:

Läs mer

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

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

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

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

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

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

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

Lösningsförslag till tentamen

Lösningsförslag till tentamen Uppgift 1 a) Falskt! Bitmönstret är 10010111 b) Falskt! Memory Manager handhar Lösningsförslag till tentamen 170609 c) Falskt. En trojansk häst är ett program i förklädnad. Det är således program som på

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

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

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

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

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

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

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 00 - juni - 17 Tentamen i Objektorientering och Java Skrivtid 5 h Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 00 - juni - 17 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 4 (12p+8p+12p+8p = 40p) Lärare, jourhavande lärare :

Läs mer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se

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

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

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så

Läs mer

Tentamen FYTA11 Javaprogrammering

Tentamen FYTA11 Javaprogrammering Lunds universitet FYTA11 Institutionen för Teoretisk Fysik HT 08 Tentamen FYTA11 Javaprogrammering Fredag 9:e januari 2009, 09:00 13:00 Instruktioner Inga hjälpmedel är tillåtna. Behandla högst en uppgift

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

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

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

1 Grafiska komponenter

1 Grafiska komponenter 1 Grafiska komponenter Vi har sett exempel på hur vi kan arbeta med enkla dialogrutor med klasser JOptionPane och hur vi kan rita med en rityta, Graphics instans, i en Java applet. Att skapa ett grafiskt

Läs mer

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

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