Översikt. GUI programmering i Java SWT och Lab 1. Översikt till SWT. Översikt till SWT. JAVA SWT/JFace Lab 1 DVGA11. Hemsida

Storlek: px
Starta visningen från sidan:

Download "Översikt. GUI programmering i Java SWT och Lab 1. Översikt till SWT. Översikt till SWT. JAVA SWT/JFace Lab 1 DVGA11. Hemsida"

Transkript

1 Översikt GUI programmering i Java SWT och Lab 1 JAVA SWT/JFace Lab 1 DVGA11 Översikt till SWT Översikt till SWT Hemsida Tutorials online Javadoc doc.isv/reference/api/overview-summary.html Standard Widget Toolkit (SWT) Använder native widgets via JNI Emulerar widgets som inte finns på host plattformen Tillhandahåller MVC genom JFace. Flexibilitet (traditionell eller MVC programmering) Open source kompilerar till native körbar fil med gcj 1

2 1. import org.eclipse.swt.widgets 2. import org.eclipse.swt.widgets.shell; 3. public class HelloWorld { 4. public static void main(string[] args) ) { 5. Display display = new Display(); 6. Shell shell = new Shell(display); 7. shell.settext("hello World"); 8. shell.setsize(250, 100); shell.open(); while (!shell.isdisposed shell.isdisposed()) { 13. if (!display.readanddispatch display.readanddispatch()) { 14. display.sleep(); display.dispose(); SWT Hello World SWT Hello World (fortsätt.) shell och display Shell objekt (rad 6) kan sägas motsvara JFrame i Swing, dvs topp nivå container som innehåller alla andra widgets (knappar, labels etc.) Shell måste hållas öppet genom att lyssna efter event med en while loop (rad 12-16). Till skillnad mot swing Så måste man skapa ett Display objekt (rad 5), som representerar det underliggand fönsterhanteringssystemet. Eftersom man hanterar operativssystems objekt så fungerar inte heller garabage collectorn utan man måste själv se till att rensa upp (rad 17). Tar man bort föräldern tas dock alla barnen bort så vanligtvis är detta allt som krävs SWT Hello World (fortsätt.) SWTUtil Känns det obekant att inte kunna använda garbage collectorn kan man skapa en SWTUtil klass (se höger) Hellow World som använder SWTUtil class import org.eclipse.swt.widgets public class HelloWorld { public static void main(string[] args) ) { Shell shell = SWTUtil.getShell(); shell.settext( Still Hello World"); shell.setsize(250, 100); SWTUtil.openShell(shell); SWTUtil.java import org.eclipse.swt.widgets public class SWTUtil { private static Display display = new Display(); public static Shell getshell() { Shell shell = new Shell(display); return shell; public static void openshell(shell shell) { shell.open(); // This loop keeps the shell open constantly listening for events while (!shell.isdisposed shell.isdisposed()) { display.dispose(); if (!display.readanddispatch display.readanddispatch()) { display.sleep(); org.eclipse.swt.widgets.display SWT Display Instanser av den här klassen sköter koppling mellan SWT och det underliggande operativsystemet. Den tillhandahåller även olika metoder för att komma åt information om operativsystemet och de resurser som allokeras av SWT I SWT så är det den tråd som skapar en instans av Display som anses vara UI tråden (för den displayen). 2

3 org.eclipse.swt.widgets.shell SWT Shell Shell klassen representerar fönstret" som hanteras av fönsterhanteraren. Typer: Top level shell är ett shell som inte har någon förälder (de är skapade av konstruktorn som tar en Display som argument) Shell som har föräldrar anges som sekundära (secondary) eller dialog shells. Tillstånd: Maximerad (Maximized) Minimerad (Minimized) Normal org.eclipse.swt.widgets.shell Styles (specifika för varje klass): SWT Shell BORDER, CLOSE, MIN, MAX, NO_TRIM, RESIZE, TITLE, ON_TOP, TOOL, APPLICATION_MODAL, MODELESS, PRIMARY_MODAL, SYSTEM_MODAL Om man vill använda mer än en style kan man använde dem genom bitvis or operator (ex. CLOSE TITLE MIN). Vill man inte ha någon specifik style använd SWT.NONE. Style är bara ett förslag, kan inte det underliggande operativsystemet visa en style så använder den en default Fördefinerade konstanter: SHELL_TRIM En sammanslagning av styles (CLOSE TITLE MIN MAX RESIZE) för att skapa ett typiskt applikations fönster. DIALOG_TRIM En sammanslagning av styles (TITLE CLOSE BORDER) för att skapa ett typiskt dialog ruta. org.eclipse.swt.widgets.widget SWT Widget Widget klassen är den abstrakta superklassen för alla interface objekt En widget skapas genom att både specificera en förälder och en style En förälder är den container som widgeten är skapade inuti (ex. Shell). Style beror på vilken widget det är se ts/ org.eclipse.swt.widgets.label Ej editerbar och ej valbar text SWT.VERTICAL eller SWT.HORIZONTAL kan användas tillsammans med SWT.SEPARATOR för att skapa horisontella/vertikala separatorer SWT Label LabelWorld.java 1.import org.eclipse.swt.swt; 2.import org.eclipse.swt.layout.gridlayout; 3.import org.eclipse.swt.widgets 4.public class LabelWorld { 5. public static void main(string[] args) ) { 6. Shell shell = SWTUtil.getShell(); 7. shell.settext("label World"); 8. shell.setlayout(new GridLayout()); 9. // Create labels 10. new Label(shell, SWT.NONE).setText("Regular label"); 11. new Label(shell, SWT.SEPARATOR); 12. new Label(shell, SWT.SEPARATOR SWT.HORIZONTAL); // pack and show 15. shell.pack(); 16. SWTUtil.openShell(shell);

4 org.eclipse.swt.widgets.button SWT Button Alla typer av knappar skapas genom att använda Button klassen. Klickbar widget, skickar en notifikation när den är klickad på. Styles: ARROW, CHECK, PUSH, RADIO, TOGGLE, FLAT, UP, DOWN, LEFT, RIGHT, CENTER ButtonWorld.java 1.import org.eclipse.swt.swt; 2.import org.eclipse.swt.layout.gridlayout; 3.import org.eclipse.swt.widgets 4.public class ButtonWorld { 5. public static void main(string[] args) ) { 6. Shell shell = SWTUtil.getShell(); 7. shell.settext("button World"); 8. shell.setlayout(new GridLayout(2, true)); new Button(shell, SWT.PUSH SWT.FLAT).setText("Flat Push Button"); 11. new Button(shell, SWT.CHECK).setText("Check Button"); 12. new Button(shell, SWT.TOGGLE).setText("Toggle Button"); 13. new Button(shell, SWT.RADIO).setText("Radio Button"); // pack and show 16. shell.pack(); 17. SWTUtil.openShell(shell); org.eclipse.swt.widgets.text SWT Text Textruta där användaren kan skriva in text och ändra text TextWorld.java Styles: CENTER, LEFT, MULTI, PASSWORD, SINGLE, RIGHT, READ_ONLY, WRAP 1. import org.eclipse.swt.swt; 2. import org.eclipse.swt.layout.gridlayout; 3. import org.eclipse.swt.widgets 4. public class TextWorld { 5. public static void main(string[] args) ) { 6. Shell shell = SWTUtil.getShell(); 7. shell.settext("text World"); 8. shell.setlayout(new GridLayout()); new Text(shell, SWT.NONE).setText("Missing something..."); 11. new Text(shell, SWT.BORDER); // regular textfield 12. new Text(shell, SWT.PASSWORD SWT.BORDER).setText("password"); "); 13. new Text(shell, SWT.READ_ONLY SWT.BORDER).setText("Can't type inside"); 14. new Text(shell, SWT.MULTI SWT.V_SCROLL SWT.WRAP 15. SWT.BORDER).setText("\n\n\n"); "); // pack and show 18. shell.pack(); 19. SWTUtil.openShell(shell); org.eclipse.swt.widgets.combo SWT Combo Välj ifrån en lista/meny enkel eller multival möjligt ComboWorld.java Styles: DROP_DOWN, READ_ONLY, SIMPLE 1. import org.eclipse.swt.swt; 2. import org.eclipse.swt.layout.gridlayout; 3. import org.eclipse.swt.widgets 4. public class ComboWorld { 5. public static void main(string[] args) ) { 6. Shell shell = SWTUtil.getShell(); 7. shell.settext("combo World"); 8. shell.setlayout(new GridLayout(3, true)); 9. String[] items = "One Two Three Four Five Six".split(" "); 14. two.setitems(items); 15. Combo three = new Combo(shell, SWT.SIMPLE); 16. three.setitems(items); // pack and show 19. shell.pack(); 20. SWTUtil.openShell(shell); SWT Composites org.eclipse.swt.widgets.composite... Instanser av den här klassen är en widget som kan innehålla andra widgets (knappar etc). Widget w = new Widget(composite, SWT.NONE); public class CompositeExample {... public CompositeExample() {... // Build the components Composite c1 = new Composite( shell, SWT.NULL ); c1.setlayout( new FillLayout() ); Button b1 = new Button( c1, SWT.PUSH ); b1.settext( "Button on Composite 1" ); Composite c2 = new Composite( shell, SWT.NULL ); c2.setlayout( new FillLayout() ); Button b2 = new Button( c2, SWT.PUSH ); b2.settext( "Button on Composite 2" ); Combo one = new Combo(shell, SWT.DROP_DOWN); 11. one.setitems(items); 12. Combo two = new Combo(shell, SWT.DROP_DOWN SWT.READ_ONLY); 13. 4

5 org.eclipse.swt.widgets.layout SWT Layouts En layout bestämmer position och storlek på en composite widget SWT har 5 layouter: FillLayout RowLayout StackLayout GridLayout FormLayout Man applicerar en layout genom att anropa setlayout() org.eclipse.swt.layout.filllayout SWT Layouts (forts.) FillLayout Placerar alla widgets in en kolumn eller rad SWT.VERTICAL eller SWT.HORIZONTAL Alla widgets får samma storlek SWT Layouts (forts.) org.eclipse.swt.layout.rowlayout RowLayout Liknar Filllayout men tvingar inte alla widgets att vara lika stora Byter rad om inte alla widgets får plats SWT Layouts (forts.) org.eclipse.swt.layout.gridlayout GridLayout Som namnet antyder läggs widgets ut i en grid. 6 attributes (defaults är definerade): boolean makecolumnsequalwidth alla kolumner får samma vidd int numcolumns antal kolumner int marginwidth, int marginheight, int horizontalspacing, int verticalspacing Bestämmer avstånd till andra objekt och avstånd mellan celler GridLayout(int numcolumns, boolean makecolumnsequalwidth) För ytterliggare kontroll använd GridData objekts OBS ett griddata objekt skall inte återanvändas för flera layouter. 5

6 Button loginbutton = new Button(shell, SWT.PUSH SWT.FLAT); 25. GridData data = new 27. org.eclipse.swt.layout.griddata SWT Layouts (forts.) GridData GridData är det layout data objekt som man assoscierar med GridLayout. För att aktivera ett GridData objekt för en widget så använder man widget.setlayoutdata(object) metoden. Det finns 2 sätt att skapa specifika GridData objekt. Första sättet är att sätta attributen: GridData griddata = new GridData(); griddata.horizontalalignment = GridData.FILL; griddata.grabexcesshorizontalspace = true; button1.setlayoutdata(griddata); Det andra är att använda fördefinerade style bits : button1.setlayoutdata(new GridData(GridData.HORIZONTAL_ALIGN_FILL GridData.GRAB_HORIZONTAL)); SWT Layouts (forts.) GridLayout exempel org.eclipse.swt.layout.gridlayout 1. import org.eclipse.swt.swt; 2. import org.eclipse.swt.layout 3. import org.eclipse.swt.widgets 4. public class GridLayoutExample { 5. public static void main(string[] args) ) { 6. Shell shell = SWTUtil.getShell(); 7. shell.settext("gridlayoutexample"); "); 8. shell.setlayout(new GridLayout(2, false)); // 2 columns, same width // Username 11. new Label(shell, SWT.RIGHT).setText("Username:"); 12. Combo cmbusername = new Combo(shell, SWT.DROP_DOWN); 13. cmbusername.setlayoutdata(new GridData(GridData.FILL_HORIZONTAL)); 14. cmbusername.setitems(new String[]{"Howard", "Admin", "Kalman" Kalman"); 15. cmbusername.settext("admin"); "); // Password 19. new Label(shell, SWT.RIGHT).setText("Password:"); 20. new Text(shell,SWT.BORDER SWT.PASSWORD).GridData(GridData.FILL_HORIZONTAL GridData(GridData.FILL_HORIZONTAL)); // Login Button 24. loginbutton.settext("proceed to your account"); data = new GridData(GridData.FILL_HORIZONTAL); 26. data.horizontalspan = 2; // span 2 columns 27. loginbutton.setlayoutdata(data); 28. shell.pack(); 29. SWTUtil.openShell(shell); org.eclipse.swt.events Events SWT widgets kan lyssna efter events För att kunna lyssna på ett event så måste en lyssnare (listener) läggas till widgeten Ibland så kan en lyssnare lyssna på för många olika saker Då använder man en adapter. Några popolära lyssnare/adaptrar FocusListener/FocusAdapter fokus event KeyListener/KeyAdapter tangenttryckningar ModifyListener(1 method) textändringar VerifyListener lyssnare efter och fångar upp textändringar MouseListener/MouseAdapter mustryck/klick SelectionListener/SelectionAdapter selection events (liknande ActionListener i Swing) 1. import org.eclipse.swt.swt; 2. import org.eclipse.swt.events 3. import org.eclipse.swt.layout 4. import org.eclipse.swt.widgets 5. public class EventHandling { 6. private static boolean numbersonly; 7. public static void main(string[] args) ) { 8. Shell shell = SWTUtil.getShell(); 9. shell.settext("eventhandling"); "); 10. shell.setlayout(new GridLayout(2, false)); 12. // input 13. Label lblinput = new Label(shell, SWT.RIGHT); 14. lblinput.settext("type in here:"); Events (EventHandling.java) 15. GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END); 16. lblinput.setlayoutdata(data); 17. Text input = new Text(shell, SWT.BORDER); 18. input.addverifylistener(new VerifyListener() { 19. public void verifytext(verifyevent vevent) ) { 20. vevent.doit = false; // don't allow anything but numbers 21. if(!numbersonly vevent.character == '\b')' { 22. vevent.doit = true; else if(character.isdigit(vevent.character) ) && numbersonly) ) { 25. vevent.doit = true; ); 29. Button btnallow = new Button(shell, SWT.CHECK); 30. btnallow.settext("allow numbers only"); 31. data = new GridData(GridData.HORIZONTAL_ALIGN_CENTER); 32. data.horizontalspan = 2; 33. btnallow.setlayoutdata(data); 34. btnallow.addselectionlistener(new SelectionAdapter() { 35. public void widgetselected(selectionevent selectionevent) { 36. numbersonly = ((Button)(selectionEvent.widget)).getSelection Button)(selectionEvent.widget)).getSelection(); (); ); 39. shell.pack(); 40. SWTUtil.openShell(shell);

7 org.eclipse.swt.events syncexec() / asyncexec() Man skall endast uppdatera UIet ifrån UI tråden För att uppdatera en Label i UI (huvud) tråden ifrån en annan tråd så kan man INTE anropa label.settext(värde) ifrån den andra tråden. För att uppdatera så anropar man (på Displayen): syncexec(runnable) om den anropande tråden kräver svar eller måste veta att UI tråden är klar innan den fortsätter. asyncexec(runnable) om man skall göra en UI operation som inte kräver nått svar eller är oavhängigt av den anropande trådens exekvering syncexec() / asyncexec() Exempel kod för att uppdater en Label ungefär 1 gång i sekunden ifrån en annan tråd 1. new Thread(new Runnable() { 2. public void run() { 3. Display display = shell.getdisplay(); 4. while(!shell.isdisposed()) ()) { //kontrollera så att shellet inte har kastats 5. try { 6. display.asyncexec(new Runnable() { 7. public void run() { 8. clock.settext((new Date()).toString()); ()); ); //slut parantes ifrån Thread.sleep(1000); catch (InterruptedException( e) { 14. e.printstacktrace(); ).start(); //slut parantes ifrån 1 org.eclipse.jface.* JFace Bild och font register för att hantera OS resurser Dialoger och wizards Progress bars Action mekanism Action mekanismen separerar användarkommandon från var de hände i UI. En action representerar ett användarkommando (event). Viewers och editors Model-baserade adapters för några SWT widgets som JFace tillhandahåller hög-nivå semantik för. 1. /** 2. * Represents a category of items. 3. * 4. */ 5. class Category { 6. private String name; 7. private Vector subcategories; 8. private Category parent; 10. public Category(String name, Category parent) { 11. this.name = name; 12. this.parent = parent; 13. if(parent!= null) 14. parent.addsubcategory(this); public Vector getsubcategories() { 17. return subcategories; private void addsubcategory(category subcategory) { 20. if(subcategories == null) 21. subcategories = new Vector(); 22. if(! subcategories.contains(subcategory)) 23. subcategories.add(subcategory); public String getname() { 26. return name; public Category getparent() { JFace exempel 1/3 1. Vector categories = new Vector(); 2. Category category = new Category( Java libraries,, null); 3. categories.add(category); 4. category = new Category( UI Toolkits,, category); 5. new Category( AWT AWT,, category); 6. new Category( Swing Swing,, category); 7. new Category( SWT/JFace SWT/JFace,, category); 8. category = new Category( Java IDEs,, null); 9. categories.add(category); 10. new Category( Eclipse Eclipse,, category); 11. new Category( JBuilder JBuilder,, category); 29. return parent; pi/overview-summary.html

8 final Tree tree = new 2. /** 3. * Builds up the tree with the MVC approach. 4. * 5. */ 6. public void MVC() { 7. TreeViewer treeviewer = new 8. treeviewer.setcontentprovider(new 9. public 10. Vector subcats 11. return subcats == null? new Object[0] : public Object getparent(object element) { 15. return public boolean haschildren(object element) { 18. return public 21. if(inputelement!= null && inputelement instanceof 22. return return new Object[0]; public void 27. // public void inputchanged(viewer viewer, Object oldinput, Object 30. // ); 33. treeviewer.setlabelprovider(new 34. public String gettext(object element) { 35. return ); final Tree tree = new Tree(shell,, SWT.BORDER); 2. /** 3. * Builds up the tree with traditional approach. 4. * 5. */ 6. public void traditional() { JFace exempel 2/3 7. for(int i=0; categories!= null && i < categories.size(); i++) { 8. Category category = (Category)categories.elementAt(i ( Category)categories.elementAt(i); ); 9. addcategory(null, category); På traditionellt sätt utan MVC 12. /** 13. * Adds a category to the tree (recursively). 14. parentitem 15. category 16. */ 17. private void addcategory(treeitem parentitem, Category category) ) { 18. TreeItem item = null; 19. if(parentitem == null) 20. item = new TreeItem(tree,, SWT.NONE); 21. else 22. item = new TreeItem(parentItem,, SWT.NONE); 23. item.settext(category.getname()); ()); 24. Vector subs = category.getsubcategories(); 25. for(int i=0; subs!= null && i < subs.size(); i++) 26. addcategory(item,, (Category)subs.elementAt(i ( Category)subs.elementAt(i)); )); = new Tree(shell, SWT.BORDER); JFace exempel 3/3 = new TreeViewer(tree); treeviewer.setcontentprovider(new ITreeContentProvider() { public Object[] getchildren(object parentelement) { subcats = ((Category)parentElement).getSubCategories Category)parentElement).getSubCategories(); return ((Category)element).getParent Category)element).getParent();? new Object[0] : subcats.toarray(); return ((Category)element).getSubCategories Category)element).getSubCategories()!= null; Med MVC public Object[] getelements(object inputelement) { return ((Vector)inputElement).toArray Vector)inputElement).toArray(); void dispose() { treeviewer.setlabelprovider(new LabelProvider() { return ((Category)element).getName Category)element).getName(); 38. treeviewer.setinput(categories); instanceof Vector) { Object newinput) { Lab 1 Luffarschak (Tic-Tac-Toe) Uppgift: Skriv ett luffarschack spel som går att spela (ingen AI). Språk : Java SWT Krav (grundläggande) Programmet skall kunna köras utan eclipse med kommandot java -jar programnamn.jar Programmet skall använda SWT (ev. JFace) Frivillig Extra uppgift Lösningen skall vara implementerad med MVC mönstret Indentifiera problem Vad är Luffaschack Lab 1 Arbetsgång Ett spel bestående av 3x3 rutor där varje spelare (X och O) försöker få 3 i rad (horisontellt vertikalt eller diagonalt (de turas om att spela). Hur representerar jag detta Som ett rutnät på 3x3 med en knapp i varje ruta. Varje knapp skriver in X el O beroende på vilkens drag det var när man klickade på den sätter sig sedan i disabled läge så man inte kan trycka på den igen. Problem Hur kan man veta vilkens tur det är? Hur veta när någon vunnit? Hur vet när spelet är slut (om ingen vunnit före detta)? 8

9 Lab 1 Lab 1 Arbetsgång Layout problem Nyckelord : shell setlayout GridLayout Knapp problem (storlek) Nyckelord : setlayoutdata GridData GridData.FILL_HORIZONTAL GridData.FILL_VERTICAL Event problem Nyckelord : addselectionlistener SelectionAdapter widgetselected Lab 1 Arbetsgång Hur kan man få reda på vems tur det är Man kan ha en variabel som alternerar mellan 2 värden Modulo 2 på en räknare som räknar antal drag (resten blir 0 varannan gång) Hur kan man veta att spelet är slut (om ingen vunnit) Alla knapparna är disabled Räkna hur många drag som gjorts (9 rutor, ett klick per ruta) Lab 1 Arbetsgång Hur veta om någon har vunnit Finns bara ett fixt antal sätt att vinna på Kolla alla möjliga vinstkombinationer med if satser 9

10 Lab 1 Arbetsgång Hur veta om någon har vunnit Skapa en matris med vinstkombinationer Loopa över knapparna och kolla mot matrisen 10

GUI programmering i Java SWT och Lab 1 DVGA11

GUI programmering i Java SWT och Lab 1 DVGA11 GUI programmering i Java SWT och Lab 1 DVGA11 Översikt JAVA SWT/JFace Lab 1 Översikt till SWT Hemsida http://www.eclipse.org/swt Tutorials online http://www.cs.umanitoba.ca/~eclipse/ Javadoc http://www.cs.umanitoba.ca/~eclipse/2-basic.pdf

Läs mer

GUI programering med Java SWT och C#.net. Översikt

GUI programering med Java SWT och C#.net. Översikt GUI programering med Java SWT och C#.net DVGA11 Översikt Allmänt Laborationsmoment GUI programmering Allmänt JAVA SWT/JFace,C#.net/WinForms IDE installation/konfiguration Eclipse Java SWT/JFace Visual

Läs mer

Översikt. GUI programering med Java SWT och C#.net. GUI Programmering Allmänt. Allmänt. Allmänt Laborationsmoment GUI programmering

Översikt. GUI programering med Java SWT och C#.net. GUI Programmering Allmänt. Allmänt. Allmänt Laborationsmoment GUI programmering Översikt GUI programering med Java SWT och C#.net DVGA11 Allmänt Laborationsmoment GUI programmering Allmänt JAVA SWT/JFace,C#.net/WinForms IDE installation/konfiguration Eclipse Java SWT/JFace Visual

Läs mer

GUI programering med Java SWT och C#.net DVGA11

GUI programering med Java SWT och C#.net DVGA11 GUI programering med Java SWT och C#.net DVGA11 Översikt Allmänt Laborationsmoment GUI programmering Allmänt JAVA SWT/JFace,C#.net/WinForms IDE installation/konfiguration Eclipse Java SWT/JFace Visual

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

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

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

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

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

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

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

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

SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

SI-pass 4. Johan Brook och Jesper Persson. 25 september 2012. Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. SI-pass 4 Johan Brook och Jesper Persson 25 september 2012 1. Sant eller falskt? Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner. Interfaces i Java kan innehålla privata

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

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

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

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

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

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

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

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

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

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java jonas.kvarnstrom@liu.se 2017 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Till stor del ersatt av Swing: Mer omfattande,

Läs mer

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

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

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

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

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

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

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras,

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

Concurrency Saker händer samtidigt. Process En instans av ett program

Concurrency Saker händer samtidigt. Process En instans av ett program Concurrency Saker händer samtidigt Hur gör vi flera saker samtidigt på en dator? - Dela på en CPU - Flera CPU Flera processer på en dator. Operativsystemet (OS) tilldelar dem körtid (time slices, prioritet)

Läs mer

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen , Introduktion till Java, dtaa98, dtea53 Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion

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

Att skriva till och läsa från terminalfönstret

Att skriva till och läsa från terminalfönstret Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen

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

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

Tentamen FYTA11 Javaprogrammering

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

Läs mer

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

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6

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

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016 Objektorienterad Programkonstruktion Föreläsning 4 8 nov 2016 Nästade klasser I Java går det att deklarera en klass inuti en annan klass. Vi kallar detta för att en yttre klass innehåller en inre klass.

Läs mer

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

Föreläsning 12: Exempel och problemlösning TDA 545: Objektorienterad programmering Föreläsning 12: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Problemlösning, dvs hur man ska tänka för att hitta lösning int mängd/set

Läs mer

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

Föreläsning 8: Exempel och problemlösning TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och

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

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

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 2 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin, 2018 Outline Emacs Introduktion till Objektorienterad Programmering Introduktion till Java Variabler

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

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

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

Läs mer

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning Översikt Uttryck i tilldelningssatser Typer och typomvandling Klasser Metoder Konstanter Eclipse-tips MERA JAVA OCH ECLIPSE Institutionen för datavetenskap Programmering 1 Rita Kovordányi 2 public class

Läs mer

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning. Introduktion Upplägg Kursen heter konstruktion, ej design eller formgivning. det handlar främst om att lära sig att bygga gränssnitt som är sunda den är praktiskt orienterad; vetenskapliga teorier finns,

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

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

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine. Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt

Läs mer

Föreläsnings 9 - Exceptions, I/O

Föreläsnings 9 - Exceptions, I/O Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina

Läs mer

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

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,

Läs mer

Föreläsning 3: Booleans, if, switch

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

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

Programmering för språkteknologer II, HT2011. Rum

Programmering för språkteknologer II, HT2011. Rum Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget

Läs mer

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Grafiska användargränssnitt i Java En genomgång av de viktigaste begreppen Alternativ 2 Från början fanns AWT, Abstract Window Toolkit Stora delar har

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

Läs mer

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 Tentamen 2016 03 18, kl. 14.00 17.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del I

Läs mer

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004 Programmering hh.se/db2004 Föreläsning 10: Objektorienterad programmering - datatyper Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Påminnelse: en datatyp för bilder Vad är

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

Tentamen i Objektorienterad programmering E

Tentamen i Objektorienterad programmering E CHALMERS TEKNISKA HÖGSKOLA Datavetenskap TDA546 Tentamen i Objektorienterad programmering E Måndagen 8 mars 2010, 8.30 12.30. Jourhavande lärare: Björn von Sydow, tel 1040. Inga hjälpmedel. Lösningar till

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna

Läs mer

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

Tentamen Programmeringsteknik II Inledning. Anmälningskod: Tentamen Programmeringsteknik II 2016-01-11 Inledning I bilagan finns ett antal mer eller mindre ofullständiga klasser. Några ingår i en hierarki: List, SortedList, SplayList och ListSet enligt vidstående

Läs mer

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition. Innehåll The Last Adventure Den sista lektionen Repetition Examination Slutar 14:45 (minnesstund) Många saker "flashar" förbi - hojta Objektorientering Språket Java Class Object Inheritance Polymorphism

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

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

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

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

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa 2203$( Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Email: bjorne@nada.kth.se Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 previous next Exempel: lampa Light1 #

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

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1 Grundläggande programmering DVG A08 & ISG A04 Allmän information Grupp C och D slås ihop Schemat är ändrat Kurs i programmering utan förkunskaper Hjälp oss med detta Lita inte på era klasskamrater De ställer

Läs mer

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av

Läs mer

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson Lösningar till TENTAMEN I IXC003 SYSTEMUTVECKLING MED INTERNET/INTRANET, del 1 (5p) för IT3 och INTERNETPROGRAMMERING MED JAVA

Läs mer

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.

Tentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. Tentamen 101213 - LÖSNINGSFÖRSLAG Uppgift 1. a) Ger utskriften c( ) in D b) Ger utskriften true c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. d) Ger utskriften b( )

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

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

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

Tentamen , Grundläggande programmering i Java

Tentamen , Grundläggande programmering i Java Institutionen för informationsteknologi och medier Sid:1(3) Grundläggande programmering i Java Martin Kjellqvist Lösningsförslag, lösningsansatser Tentamen 2006-01-20, Grundläggande programmering i Java

Läs mer

Tentamen. Lösningsförslag

Tentamen. Lösningsförslag Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt

Läs mer

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid: Tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar: Alex

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

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

Parallellism, återblick

Parallellism, återblick Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata

Läs mer

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå

Läs mer

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

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Göteborg, Magnus Myréen, 2014-10- 15 Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max

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

Föreläsning 14. Filhantering

Föreläsning 14. Filhantering Föreläsning 14 Filhantering Filhantering Att hantera filer, dvs att läsa eller skriva data till en fil är en viktig del i de flesta program. Ur Javas synvinkel är filer objekt med egenskaper och metoder

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

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

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016 Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter

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