Software Prototype Document Dato: Fag:

Størrelse: px
Begynne med side:

Download "Software Prototype Document Dato: 12.12.2002 Fag:"

Transkript

1 6.2 SPD Flight Progress Strips System for Air Traffic Control Versjon: 1.0 Software Prototype Document Dato: Fag: Gruppe nr: Veiledere: Software Engineering Filformat: 1 Filnavn: Børre Ludvigsen/Ky Van Ha Word 2000 SPD_gr1.doc Gruppemedlemmer: Navn: Signatur: Dato: Christian Raspotnig Kjell Gunnar Guttormsen Petter Larsen Eva Sandved Therese Røsholdt Side: 389

2 Innholdsfortegnelse 1 Introduksjon 1.1 Hensikt Definisjoner og forkortelser Definisjoner Forkortelser Referanser Bøker Artikler Andre Prototype 2.1 Prototypeavgjørelser Valg av prototypemetode Valg av design Valg av programmeringsspråk Javadoc og kommentering av kode Bemerkninger til prototypen Bruk av grensesnitt Forklaring av felter Forklaring av drag n drop Kode FPSS FPPSMenuBar GUIStripBoard GUIStripHeader GUIStripContainer GUIStripCreator GUIStrip GUIDepartureStrip GUITransitStrip GUIArrivalStrip StripCreator Strip DepartureStrip TransitStrip ArrivalStrip Javadoc 448 Side: 390

3 1 Introduksjon Figur 1, utsnitt av prototype FPSS 1.1 Hensikt Dette er et dokument som tar for seg prototypen som er utviklet. Dokumentet inneholder en begrunnelse for prototypen og beskrivelsen av den. 1.2 Definisjoner og forkortelser Definisjoner Se punkt Forkortelser Se punkt Referanser Bøker: - Java, How to program, Deitel & Deitel, Data Structures & Problem Solving Using Java, Mark Allen Weiss, Addison Wesley, Patterns in Java vol 1, Mark Grand, Wiley, Artikler: Side: 391

4 1.3.3 Andre: - DigiStrips (video over digital stips, utviklet i samarbeid med Sentre D etudes De La Navigation Aerienne) - Javas API-documentation Side: 392

5 2 Prototype 2.1 Prototypeavgjørelser Valg av prototypemetode Prototypemetoden vi har valgt er rapid (throw-away) prototyping av det grafiske brukergrensesnittet. Rapid (throw-away) innebærer at prototypen ikke er ment for videreutvikling til et ferdig produkt. Prototypen bygger på SRS og SDS, men det ferdige produktet, fullversjonen, vil utvikles på nytt fra grunnen av. Det at prototypemetoden er rapid innebærer også at det trolig vil utvikles flere prototyper før fullversjonen blir laget. Prototypemetoden er også en Requirements animation da den er ment demonstrert for og vurdert av brukerne, og dermed hjelper til med å komme fram til klare og konsise krav, og støtter designutviklingsfasen videre. Disse prototypemetodene støttes av prosessmodellen vi har valgt å benytte oss av i dette prosjektet, en fossefallsmodell med prototyping. Da prototypemetoden er rapid og vektleggingen ligger på det grafiske brukergrensesnittet er GUI-klassene laget fleksible, så det er enkelt og raskt å forandre utseende på GUI. Dette er gjort ved å dele opp GUIet i flere klasser og i minst mulig grad bruke faste størrelser på objekter. Disse bør justeres automatisk etter dimensjonene på skjermstørrelsen. Prototypen er ment som et hjelpemiddel både til å forstå problemstillingene som er involvert når det gjelder det grafiske brukergrensesnittet, og til forståelsen av systemet som helhet Valg av design I utviklingen av FPSS bruker vi objekt orientert design. Dette fordi FPSS vil bli et system som stadig vil bli utsatt for forandringer og et objekt orientert design legger forholdene til rette for dette. Objektorientering Virkeligheten består av objekter Objekter består av attributter (data) og metoder (operasjoner) Objektene håndterer seg selv Objektene kommuniserer vha meldinger / funksjoner Objekt orienterte systemer er lettere å vedlikeholde på grunn av at objektene er uavhengige. De kan bli forstått og modifisert som stand-alone entiteter. Dersom man forandrer implementasjonen av et objekt eller legger til tilleggstjenester trenger ikke dette å forandre andre systemobjekter. Objekter er potensielt gjenbrukbare komponenter fordi tilstand og operasjoner er innkapslet uavhengig av andre objekter. Design kan bli utviklet ved bruk av objekter som har blitt laget i tidligere design. Dette reduserer design-, programmerings- og valideringskostnadene. Det kan også føre til at man benytter standard objekter (som forbedre design forståelsen) og det reduserer risikoen involvert i software utviklingen. Side: 393

6 2.1.3 Valg av programmeringsspråk Da vi har valgt et objekt orientert design på FPSS, falt det naturlig å bruke det objekt orienterte språket vi kan best til å kode prototypen, nemlig Java. Da prototypen er en throw-away prototype kan fullversjonen lages også i andre programmerings-språk enn Java Javadoc og kommentering av kode Det er laget en javadoc til prototypen, denne følger med på CD en som ligger ved sluttrapporten, i en mappe ved navn javadoc. For å åpne dokumentasjonen, se README.txt i mappen javadoc. Prototypens javadoc er skrevet på engelsk, mens kommentarer i koden for øvrig er på norsk. Mye av javadoc en og kommenteringen ellers i koden er laget etter at koden ble lagt ved dette dokumentet. For flere kommentarer til koden, se de ulike klassene på på CD en som ligger ved sluttrapporten, i mappen fpss Bemerkninger til prototypen Prototypen følger med på CD en som ligger ved sluttrapporten, i en mappe ved navn fpss. For å kjøre prototypen, se README.txt i mappen fpss. Når prototypen åpner seg første gang tar det litt tid før den åpner seg ordentelig. Dette er fordi det er laget en metode som heter rundemo () som putter en rekke strips opp på skjermen, i ulike containere. I prototypen er det dårlig brukersikring. Den benytter seg for eksempel i liten grad av exceptions. I fullversjonen vil dette selvfølgelig være viktig og bli tatt høyde for. Metaforen som det grafiske brukergrensesnittet bygger på er det manuelle stripbordet som flygeledere bruker i dag. Da prototypen kun dekker det grafiske brukergrensesnittet er det bare funksjonaliteten her som er fungerer. Prototypen kan for eksempel ikke ta imot AFTN-meldinger (dette blir simulert i metoden recievedata() i klassen FPSS.java). I fullversjonen må man velge arbeidssted ved oppstart av programmet, i prototypen er dette satt til å være Rygge flystasjon. Prototypen skriver heller ikke ut til kritisk backup eller lagrer til generell backup, men endringer man gjør på strips vil bli registrert, slik at disse beholdes selv om strips flyttes. Mellom prototypen og den designede fullversjonen er det flere forskjeller både i brukergrensesnittets utseende og funksjonalitet. Noen av disse er som følger (for forklaring av felter, se også SDS pkt. 4.3 vedlegg 2): Feltene Departureclearance, Headings og Altitudes. For å legge inn data om disse i prototypen har vi valgt å lage et felt for å legge inn data, og et annet for å vise innlagte data. I fullversjonen vil det være samme felt for å legge inn og vise disse dataene. Dessuten vil de gamle klareringene komme opp med med en strek over seg. I prototypen får noen av feltene som er mottagelige for input scrollbar når teksten i feltet overgår feltets størrelse. Dette gjelder for feltene som skal inneholde Side: 394

7 Flightroute og Remarks. I fullversjonen vil man ikke ha scrollbar, da vil en annen type funksjonalitet brukes for at ikke informasjon blir skjult for FLL. Flytting (drag n drop) av strips, se Forklaring av drag n drop. 2.2 Bruk av grensesnitt Forklaring av felter For forklaring av felter, se også SDS pkt. 4.3 vedlegg 2. I prototypen består strips av forskjellige felter som kan deles inn i tre kategorier. Kategori 1: I disse feltene kan man legge inn og manipulere data. De vil være hvite og få opp markør når man klikker på dem. De vil ha lik funksjonalitet som i en teksteditor, hvor man for eksempel kan dobbeltklikke på et ord for å markere det. Når man skriver inn ny data i disse feltene og trykker enter, vil denne dataen bli prosessert og lagt inn i enten samme felt, eller inn i felter av kategori 2. Det er derfor mulig å dele disse feltene inn i tre underkategorier. De to hvite feltene til venstre på strips kan man kalle for underkategorien legg til data, mens de som skal inneholde TAS, ETD/ATD, ETA/ATA og approach/sid manipuler data. Den siste kategorien kan man kalle for ekstra data og vil omfatte feltene som skal inneholde Flightroute og Remarks. Den sistnevnte kategorien vil få scrollbar når data overgår tekstfeltets størrelse. Se feltene som er markert med røde sirkler i figur 2 nedenfor for hvilke felter som er ment å falle inn under kategori 1. Figur 2, viser kategori 1 av felter på strip Kategori 2: Feltene som faller inn under denne kategorien vil være de som mottar data som blir lagt inn i feltene i kategori 1, underkategori legg til data. Før det blir lagt til data vil disse feltene være blanke. Når man legger til data og trykker enter for prosessering, vil dataen bli overført til disse feltene. Neste gang man legger til data, vil dette legge seg inn under data som ble lagt til før. Feltet som skal inneholde Headings (se SDS pkt. 4.3 vedlegg 2). Fargekoden for disse feltene er lys grå. Se figur 3 for hvilke felter som faller inn under kategori 2. Figur 3, viser kategori 2 av felter på strip Side: 395

8 Kategori 3: Disse feltene vil være de som skal inneholde statisk flightinformasjon. De vil ikke kunne forandres underveis. Fargekoden er mørk grå. Se figur 4 for hvilke felter som er ment. Figur 4, viser kategori 3 av felter på strip Side: 396

9 2.2.2 Forklaring av drag n drop I prototypen vil stripboard dannet av containere, på lik måte som i fullversjonen, inneholde strips. Når man ønsker å flytte strips mellom de forskjellige containerne vil prototype og det virkelige programmet være forskjellig. Fullversjonen vil være laget slik at man skal kunne ta tak i en strip på hvilket som helst sted og dra den over i en annen container (se figur 5). I prototypen vil man kun kunne ta tak i de mørkegrå feltene (se kategori 3 i pkt ) for å dra den over i en annen container. Prototypen vil kun inneholde en enkel drag n drop-funksjonalitet hvor man ikke ser at en strip flytter seg når man tar tak i den og drar den over i en annen container. Fullversjonen vil ha en drag n drop-funksjonalitet hvor en strip blir animert til å følge med når den blir tatt tak i og legge seg inn i en container når de blir sluppet over den (se figur 5). I både prototypen og fullversjonen vil transponderkode bli gitt så snart en strip flyttes fra pending-containeren. På lik linje vil transponderkode bli trukket tilbake hvis en strip legges tilbake i pending-containeren. Når man flytter på en strip i prototypen vil denne legge seg nederst i containeren den blir flyttet til. Enkelt-klikker man på en strip i prototypen (mørkegrått felt) vil den altså legge seg sist i samme container. I fullversjonen vil denne funksjonaliteten være erstattet av å kunne plassere en strip hvor som helst innen containeren. Eksempelvis muligheten til å dra en strip og legge den inn mellom to andre strips. Det er også viktig å merke seg at prototypen ikke gir fokus på en strip man flytter, når man flytter den til en container med scrollbar. Dette vil fullversjonen gjøre. Side: 397

10 Figur 5, viser drag n drop i virkelig program Side: 398

11 2.3 Kode FPSS import java.util.date; import java.util.calendar; import java.util.gregoriancalendar; import java.util.simpletimezone; import java.util.timezone; import java.util.vector; import java.util.enumeration; import java.util.stringtokenizer; import java.awt.*; import java.awt.color; import java.awt.event.*; /** * Main class of the FPSS, does the real fun. java.lang.object Gruppe 1, Software Engineering 2002, HiØ */ public class FPSS private GUIStripboard guisb = null; private Vector holdingstripsvector = null; private Vector pendingstripsvector = null; private Vector taxistripsvector = null; private Vector departurestripsvector = null; private Vector airbornestripsvector = null; private Vector inboundstripsvector = null; private Vector arrivalstripsvector = null; private Vector handoffstripsvector = null; private StripCreator stripcreator = null; /** * FPSS default constructor initializes all the necessary variables. */ public FPSS() stripcreator = new StripCreator (); holdingstripsvector = new Vector ( ); pendingstripsvector = new Vector ( ); taxistripsvector = new Vector ( ); departurestripsvector = new Vector ( ); airbornestripsvector = new Vector ( ); inboundstripsvector = new Vector ( ); arrivalstripsvector = new Vector ( ); handoffstripsvector = new Vector ( ); makegui ( ); recievedata ( ); rundemo ( ); //Det meste av det som gjøres med strippene her ville hørt hjemme Side: 399

12 + //i klassene ChangeStatus og Chan... Klokken er 2110 public void rundemo ( ) //Dette er departurestrippen til EAGLE15 Strip demostrip1 = ( Strip ) holdingstripsvector.get ( 0 ); holdingstripsvector.removeelementat ( 0 ); demostrip1.setfromstatus ( "pending" ); demostrip1.setstatus ( "departure" ); addstrip ( demostrip1 ); //Dette er arrivalstrippen til EAGLE15 Strip demostrip2 = ( Strip ) holdingstripsvector.get ( 0 ); holdingstripsvector.removeelementat ( 0 ); demostrip2.setfromstatus ( "holding" ); demostrip2.setstatus ( "pending" ); addstrip ( demostrip2 ); //Dette er SAS123 Strip demostrip3 = ( Strip ) holdingstripsvector.get ( 0 ); holdingstripsvector.removeelementat ( 0 ); demostrip3.setfromstatus ( "pending" ); demostrip3.setstatus ( "taxi" ); addstrip ( demostrip3 ); //Dette er LNTSB Strip demostrip4 = ( Strip ) holdingstripsvector.get ( 0 ); holdingstripsvector.removeelementat ( 0 ); demostrip4.setfromstatus ( "pending" ); demostrip4.setstatus ( "inbound" ); addstrip ( demostrip4 ); //Dette er KLM987 Strip demostrip5 = ( Strip ) pendingstripsvector.get ( 0 ); pendingstripsvector.removeelementat ( 0 ); guisb.pendingcontainer.removeguistripfromrundemo ( demostrip5 ); demostrip5.setfromstatus ( "pending" ); demostrip5.setstatus ( "handoff" ); addstrip ( demostrip5 ); //Dette er BRA545 Strip demostrip9 = ( Strip ) holdingstripsvector.get ( 0 ); holdingstripsvector.removeelementat ( 0 ); demostrip9.setfromstatus ( "pending" ); demostrip9.setstatus ( "arrival" ); addstrip ( demostrip9 ); // Illuderer mottak av AFTN-melding public void recievedata ( ) //Dette er AFTN-melding for EAGLE15 String stringfpd1 = "(FPL-EAGLE15-IM\n-F16/M-ILTUV/C\n-ENRY2100\n" DCT\n-ENRY0330 ENVA\n" + "-N0420F350 DCT RYG DCT ORL DCT RYG Side: 400

13 "-REG/711 OPR/NOW STS/NONRVSM RMK/REQ LOWPASS OF TWR ENOL DOF/021016)"; Vector fpdvector1 = splitfpd ( stringfpd1 ); // Dep(departure) og arr(pending) addstrips ( fpdvector1 ); //Dette er AFTN-melding for SAS123 String stringfpd2 = "(FPL-SAS123-IM\n-B738/M-0/C\n-ENRY2115\n" + "-N0350F200 DCT RG DCT TOGAT DCT ORL DCT\n-ENOL0145\n" + "-REG/SEGIB STS/HEAD)"; Vector fpdvector2 = splitfpd ( stringfpd2 ); // Dep(taxi) addstrips ( fpdvector2 ); //Dette er AFTN-melding for LNTSB String stringfpd3 = "(FPL-LNTSB-VG\n-C182/L\n-ENGM2045\n" + "-N0100VFR DCT KJELLER RYGGE DCT\n- ENRY0045 ENVA\n" + "-RMK/REQ PARADROP OVH RYGGE 2120)"; Vector fpdvector3 = splitfpd ( stringfpd3 ); // Arr(inbound) addstrips ( fpdvector3 ); //Dette er AFTN-melding for KLM987 String stringfpd4 = "(FPL-KLM987-IM\n-A310/M\n-EHAM2025\n" + "-N0450F480 DCT AMS DCT AAL DCT SOL DCT RG DCT TRM DCT\n-ENVA0545 ENFG\n" + "-RMK/REQ INSTR TRNG EKYT ENZV ENRY ENVA)"; Vector fpdvector4 = splitfpd ( stringfpd4 ); // Trans(handoff) addstrips ( fpdvector4 ); //Dette er AFTN-melding for TWA456 String stringfpd5 = "(FPL-TWA456-IM\n-DC10/H\n-ESSA2210\n" + "-N0450F350 DCT ARL DCT RG DCT AAL DCT HTR DCT\n-EGHR0145\n" + "-0)"; Vector fpdvector5 = splitfpd ( stringfpd5 ); // Trans(pending) addstrips ( fpdvector5 ); //Dette er AFTN-melding for LNTWH String stringfpd6 = "(FPL-LNTWH-IM\n-C550/M\n-EKCH2120\n" + "-N0340F200 DCT AAL DCT RG DCT GRM DCT\n-ENGM0200\n" + "-RMK/REQ LOW APCH ENRY)"; Vector fpdvector6 = splitfpd ( stringfpd6 ); // Trans(pending) addstrips ( fpdvector6 ); //Dette er AFTN-melding for AMA649 String stringfpd7 = "(FPL-AMA649-IM\n-A300/H\n-ENGM2155\n" + "-N0420F380 DCT GRM DCT AAL DCT\n- EKCH0145\n" + "-RMK/REQ A020 TO ENRY)"; Vector fpdvector7 = splitfpd ( stringfpd7 ); // Trans(pending) addstrips ( fpdvector7 ); //Dette er AFTN-melding for LNEET String stringfpd8 = "(FPL-LNEET-VM\n-C172/L\n-ENTO2140\n" + Side: 401

14 "-N0100VFR DCT RAKKESTAD DCT\n- ZZOS0145 ENRY\n" + "-0)"; Vector fpdvector8 = splitfpd ( stringfpd8 ); // Trans(pending) addstrips ( fpdvector8 ); //Dette er AFTN-melding for BRA545 String stringfpd9 = "(FPL-BRA545-IM\n-B735/M\n-ENVA2040\n" + "-N0350F410 DCT TRM UZ607 SIG DCT RG DCT\n-ENRY0055 ENGM\n" + "-REG/LNBRQ)"; Vector fpdvector9 = splitfpd ( stringfpd9 ); // Trans(pending) addstrips ( fpdvector9 ); /** * Splits the recieved Flight Plan Data strfpd the Flight Plan Data to split a Vector containing the split Flight Plan Data */ public Vector splitfpd ( String strfpd ) // Her blir stringen delt opp med StringTokenizer og de ulike elementene lagt i en vector // Første steg av oppdelingen foregår i en løkke, linjene i strfpd blir delt i separate stringer StringTokenizer tokens = new StringTokenizer ( strfpd, "()\n" ); String lines [ ] = new String [ 6 ]; for ( int i = 0; i < lines.length; i++ ) lines [ i ] = tokens.nexttoken ( ); Vector vectorfpd = new Vector ( ); // Her deles første linje opp ytterligere StringTokenizer line1 = new StringTokenizer ( lines [ 0 ], "-" ); line1.nexttoken ( ); vectorfpd.add ( line1.nexttoken ( ) ); // Callsign: String // Her deles andre linje opp ytterligere StringTokenizer line2 = new StringTokenizer ( lines [ 1 ], "-/" ); vectorfpd.add ( line2.nexttoken ( ) ); //AircraftType: String vectorfpd.add ( line2.nexttoken ( ) ); //WakeTurbulenceCategory: String 0, "Zulu" ) ); // Her deles tredje linje opp ytterligere vectorfpd.add ( lines [ 2 ].substring ( 1, 5 ) ); //ADEP: String Integer hours1 = new Integer ( lines [ 2 ].substring ( 5, 7 ) ); Integer minutes1 = new Integer ( lines [ 2 ].substring ( 7, 9 ) ); GregorianCalendar cal1 = new GregorianCalendar ( new SimpleTimeZone ( cal1.set ( Calendar.HOUR_OF_DAY, hours1.intvalue ( ) ); cal1.set ( Calendar.MINUTE, minutes1.intvalue ( ) ); cal1.set ( Calendar.SECOND, 0 ); cal1.set ( Calendar.MILLISECOND, 0 ); vectorfpd.add ( cal1 ); // ETD: GregorianCalendar Side: 402

15 // Her deles fjerde linje opp ytterligere StringTokenizer line4 = new StringTokenizer ( lines [ 3 ], "- " ); String firstpart = line4.nexttoken ( ); vectorfpd.add ( firstpart.substring ( 0, 5 ) ); // TAS: String vectorfpd.add ( firstpart.substring ( 5 ) ); // Altitude: String String secondpart = ""; while ( line4.hasmoreelements ( ) ) secondpart += line4.nexttoken ( ) + " "; vectorfpd.add ( secondpart ); // FlightRoute: String // Her deles femte linje opp ytterligere vectorfpd.add ( lines [ 4 ].substring ( 1, 5 ) ); //ADES: String Integer hours2 = new Integer ( lines [ 4 ].substring ( 5, 7 ) ); // Timer fra EET, skal plusses på ATD for å få ETA Integer minutes2 = new Integer ( lines [ 4 ].substring ( 7, 9 ) );//Min "" GregorianCalendar cal2 = new GregorianCalendar ( new SimpleTimeZone ( 0, "Zulu" ) ); //Skal settes til ETA cal2.set ( Calendar.HOUR_OF_DAY, hours1.intvalue ( ) ); //Denne og 3 neste linjer: setter det nye Cal-objektet cal2.set ( Calendar.MINUTE, minutes1.intvalue ( ) ); // til å være lik ETD cal2.set ( Calendar.SECOND, 0 ); cal2.set ( Calendar.MILLISECOND, 0 ); cal2.add ( Calendar.HOUR_OF_DAY, hours2.intvalue ( ) ); // Plusser på timene fra EET cal2.add ( Calendar.MINUTE, minutes2.intvalue ( ) ); // Plusser på minuttene fra EET vectorfpd.add ( cal2 ); // ETA: GregorianCalendar // Her deles sjette linje opp ytterligere vectorfpd.add ( lines [ 5 ].substring ( 1 ) ); // Comments: String /*System.out.println ( "YEAR : " + cal1.get ( Calendar.YEAR ) ); System.out.println ( "MONTH : " + cal1.get ( Calendar.MONTH ) ); System.out.println ( "WEEK_OF_YEAR : " + cal1.get ( Calendar.WEEK_OF_YEAR ) ); System.out.println ( "DATE : " + cal1.get ( Calendar.DATE ) ); System.out.println ( "DAY_OF_MONTH : " + cal1.get ( Calendar.DAY_OF_MONTH ) ); System.out.println ( "AM_PM : " + cal1.get ( Calendar.AM_PM ) ); System.out.println ( "HOUR : " + cal1.get ( Calendar.HOUR ) ); System.out.println ( "HOUR_OF_DAY : " + cal1.get ( Calendar.HOUR_OF_DAY ) ); System.out.println ( "MINUTE : " + cal1.get ( Calendar.MINUTE ) ); System.out.println ( "\n\nyear : " + cal2.get ( Calendar.YEAR ) ); System.out.println ( "MONTH : " + cal2.get ( Calendar.MONTH ) ); System.out.println ( "WEEK_OF_YEAR : " + cal2.get ( Calendar.WEEK_OF_YEAR ) ); System.out.println ( "DATE : " + cal2.get ( Calendar.DATE ) ); System.out.println ( "DAY_OF_MONTH : " + cal2.get ( Calendar.DAY_OF_MONTH ) ); System.out.println ( "AM_PM : " + cal2.get ( Calendar.AM_PM ) ); System.out.println ( "HOUR : " + cal2.get ( Calendar.HOUR ) ); Side: 403

16 System.out.println ( "HOUR_OF_DAY : " + cal2.get ( Calendar.HOUR_OF_DAY ) ); System.out.println ( "MINUTE : " + cal2.get ( Calendar.MINUTE ) ); System.out.println ( "\n\n" + vectorfpd.elementat ( 0 ) ); System.out.println ( vectorfpd.elementat ( 1 ) ); System.out.println ( vectorfpd.elementat ( 2 ) ); System.out.println ( vectorfpd.elementat ( 3 ) ); System.out.println ( vectorfpd.elementat ( 4 ) ); System.out.println ( vectorfpd.elementat ( 5 ) ); System.out.println ( vectorfpd.elementat ( 6 ) ); System.out.println ( vectorfpd.elementat ( 7 ) ); System.out.println ( vectorfpd.elementat ( 8 ) ); System.out.println ( vectorfpd.elementat ( 9 ) ); System.out.println ( vectorfpd.elementat ( 10 ) );*/ return vectorfpd; // Består av 11 elementer, String og GregorianCalendar /** * Makes and adds strips to their correct Vectors fpd the Flight Plan Data to make strips from Exception In the case of an invalid Flight Plan */ public void addstrips ( Vector fpd ) try Vector newstrips = new Vector ( ); newstrips = stripcreator.createstrip ( fpd ); Enumeration e = newstrips.elements ( ); while ( e.hasmoreelements ( ) ) Strip newstrip = ( Strip ) e.nextelement ( ); addstrip ( newstrip ); catch (Exception ex) System.out.println ( "addstrips: Beklager..." ); System.exit ( 1 ); /** * Adds a strip to its correct vector, if the strip is to be shown in a * <code>guistripcontainer</code> it makes a GUI for the strip and * shows it in the correct component striptoadd the strip to add GUIStripContainer */ public void addstrip ( Strip striptoadd ) if ( striptoadd.getstatus () == "taxi" ) taxistripsvector.addelement ( striptoadd ); Side: 404

17 guisb.taxicontainer.addguistrip ( striptoadd ); if ( striptoadd.getstatus () == "departure" ) departurestripsvector.addelement ( striptoadd ); guisb.departurecontainer.addguistrip ( striptoadd ); if ( striptoadd.getstatus () == "inbound" ) inboundstripsvector.addelement ( striptoadd ); guisb.inboundcontainer.addguistrip ( striptoadd ); if ( striptoadd.getstatus () == "arrival" ) arrivalstripsvector.addelement ( striptoadd ); guisb.arrivalcontainer.addguistrip ( striptoadd ); if ( striptoadd.getstatus () == "pending" ) pendingstripsvector.addelement ( striptoadd ); guisb.pendingcontainer.addguistrip ( striptoadd ); if ( striptoadd.getstatus () == "handoff" ) handoffstripsvector.addelement ( striptoadd ); guisb.handoffcontainer.addguistrip ( striptoadd ); if ( striptoadd.getstatus () == "holding" ) holdingstripsvector.addelement ( striptoadd ); /** * The main method of FPSS, calls the default constructor args[] not defined */ public static void main ( String args[] ) FPSS app = new FPSS(); /** * Initializes a GUIstripboard, adds a WindowListener, and shows it */ public void makegui ( ) guisb = new GUIStripboard ( ); guisb.addwindowlistener ( new WindowAdapter() Side: 405

18 public void windowclosing ( WindowEvent e ) ); exitsystem(); guisb.setvisible ( true ); /** * Makes sure the system is safely closed down */ public void exitsystem() System.exit ( 0 ); Side: 406

19 2.3.2 FPSSMenuBar import javax.swing.*; import java.awt.event.*; /** * FPSS * Prosjekt, Software Engineering 2002, HiØ * MenuBar til bruk på GUIet Gruppe 1 1.0, * FPSSMenuBar.java */ public class FPSSMenuBar extends JMenuBar implements ActionListener private JMenu closemenu; private JMenu helpmenu; //private itt controller; public FPSSMenuBar( ) makemenubar(); private void makemenubar() makeclosemenu(); makehelpmenu(); private void makeclosemenu() closemenu = new JMenu( "Close" ); closemenu.setmnemonic( 'C' ); ); JMenuItem close = new JMenuItem( "Close", new ImageIcon( "close.gif" ) close.setaccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_F2, 0 ) ); //close.setactioncommand( "close" ); close.addactionlistener( this ); closemenu.add( close ); this.add( closemenu ); private void makehelpmenu() helpmenu = new JMenu( "Help" ); helpmenu.setmnemonic( 'H' ); JMenuItem help = new JMenuItem( "Help", new ImageIcon( "help.gif" ) ); help.setaccelerator( KeyStroke.getKeyStroke( KeyEvent.VK_F1, 0 ) ); //help.setactioncommand( "help" ); help.addactionlistener( this ); Side: 407

20 "info.gif" ) ); JMenuItem about = new JMenuItem( "About FPSS", new ImageIcon( //about.setactioncommand( "about" ); about.addactionlistener( this ); helpmenu.add( help ); helpmenu.add( about ); this.add( helpmenu ); public void actionperformed( ActionEvent e ) //controller.sendmenubarmessage( e ); Side: 408

21 2.3.3 GUIStripboard import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.color; import java.awt.event.*; public class GUIStripboard extends JFrame private Container c; Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); private int width = dim.width; private int height = dim.height; private int sbheight = height - ( height / 15); private int numcolumns = 3; private int columnwidth = width / numcolumns; private int headerheight = 50; private Color hivory = new Color ( 255, 255, 255 ); private Color hblue = new Color ( 123, 213, 253 ); private Color hyellow = new Color ( 250, 253, 131 ); Color containertrimcolor = new Color ( 100, 100, 100 ); Border edge = null; FPSSMenuBar fpssmenubar = null; GUIStripContainer pendingcontainer = null; GUIStripContainer taxicontainer = null; GUIStripContainer departurecontainer = null; GUIStripContainer inboundcontainer = null; GUIStripContainer arrivalcontainer = null; GUIStripContainer handoffcontainer = null; ); public GUIStripboard ( ) super ( "Flight Progress Strip System" ); //setdefaultcloseoperation ( WindowConstants.DO_NOTHING_ON_CLOSE setresizable ( false ); setsize ( width, height ); setbounds ( 0, 0, width, height ); fpssmenubar = new FPSSMenuBar ( ); super.setjmenubar ( fpssmenubar ); setupgui ( ); public void setupgui ( ) c = getcontentpane(); c.setlayout ( null ); edge = BorderFactory.createLineBorder ( containertrimcolor ); makecolumn1 ( ); makecolumn2 ( ); Side: 409

22 makecolumn3 ( ); public void makecolumn1 ( ) int x = 0, y = 0; GUIStripHeader taxiheader = new GUIStripHeader( "TAXI", hblue ); taxiheader.setbounds ( x, y, columnwidth, headerheight ); c.add ( taxiheader ); taxicontainer = new GUIStripContainer ( "taxi", columnwidth, sbheight ); JScrollPane scrollpanetaxi = new JScrollPane ( taxicontainer, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); scrollpanetaxi.setborder ( edge ); scrollpanetaxi.setbounds ( x, y + headerheight, columnwidth, ( sbheight / 2 ) - headerheight ); c.add ( scrollpanetaxi ); y = sbheight / 2; hblue ); GUIStripHeader departureheader = new GUIStripHeader( "DEPARTURE", departureheader.setbounds ( x, y, columnwidth, headerheight ); c.add ( departureheader ); departurecontainer = new GUIStripContainer ( "departure", columnwidth, sbheight ); JScrollPane scrollpanedeparture = new JScrollPane ( departurecontainer, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); scrollpanedeparture.setborder ( edge ); scrollpanedeparture.setbounds ( x, y + headerheight, columnwidth, ( sbheight / 2 ) - headerheight ); c.add ( scrollpanedeparture ); public void makecolumn2( ) int x = columnwidth, y = 0; hyellow ); GUIStripHeader inboundheader = new GUIStripHeader( "INBOUND", inboundheader.setbounds ( x, y, columnwidth, headerheight ); c.add ( inboundheader ); inboundcontainer = new GUIStripContainer ( "inbound", columnwidth, sbheight ); JScrollPane scrollpaneinbound = new JScrollPane ( inboundcontainer, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); scrollpaneinbound.setborder ( edge ); scrollpaneinbound.setbounds ( x, y + headerheight, columnwidth, ( sbheight / 2 ) - headerheight ); c.add ( scrollpaneinbound ); Side: 410

23 y = sbheight / 2; ); GUIStripHeader arrivalheader = new GUIStripHeader( "ARRIVAL", hyellow arrivalheader.setbounds ( x, y, columnwidth, headerheight ); c.add ( arrivalheader ); arrivalcontainer = new GUIStripContainer ( "arrival", columnwidth, sbheight ); JScrollPane scrollpanearrival = new JScrollPane ( arrivalcontainer, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); scrollpanearrival.setborder ( edge ); scrollpanearrival.setbounds ( x, y + headerheight, columnwidth, ( sbheight / 2 ) - headerheight ); c.add ( scrollpanearrival ); public void makecolumn3 ( ) int x = columnwidth * 2, y = 0; ); GUIStripHeader pendingheader = new GUIStripHeader( "PENDING", hivory pendingheader.setbounds ( x, y, columnwidth, headerheight ); c.add ( pendingheader ); pendingcontainer = new GUIStripContainer ( "pending", columnwidth, sbheight ); JScrollPane scrollpanepending = new JScrollPane ( pendingcontainer, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); scrollpanepending.setborder ( edge ); scrollpanepending.setbounds ( x, y + headerheight, columnwidth, ( sbheight / 2 ) - headerheight ); c.add ( scrollpanepending); y = sbheight / 2; ); GUIStripHeader handoffheader = new GUIStripHeader( "HANDOFF", hivory handoffheader.setbounds ( x, y, columnwidth, headerheight ); c.add ( handoffheader ); handoffcontainer = new GUIStripContainer ( "handoff", columnwidth, sbheight ); JScrollPane scrollpanehandoff = new JScrollPane ( handoffcontainer, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); scrollpanehandoff.setborder ( edge ); scrollpanehandoff.setbounds ( x, y + headerheight, columnwidth, ( sbheight / 2 ) - headerheight ); c.add ( scrollpanehandoff ); public void setcolumnwidth ( int width ) Side: 411

Flight Progress Strips System for Air Traffic Control Fag:

Flight Progress Strips System for Air Traffic Control Fag: Designdokument type: Flight Progress Strips System for Air Traffic Control Fag: Gruppe nr: Veiledere: Versjon: 2.0 Dato: 21.11.2002 Software Engineering Filformat: 1 Filnavn: Børre Ludvigsen/Ky Van Ha

Detaljer

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 GUI (Graphical User Interface)- programmering Hvordan lage et vindu på skjermen Hvordan legge ulike komponenter i vinduet (trykknapper, tekseelter, tekst,

Detaljer

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør

Detaljer

Grafisk Brukergrensesnitt

Grafisk Brukergrensesnitt Grafisk Brukergrensesnitt Repetisjonskurs Hva må kunnes? JFrame JPanel JComponents Layouts Listeners jframe Representerer et vindu JComponents legges på vinduet Har en tittel og størrelse Komponenter struktureres

Detaljer

import javax.swing.*; import java.awt.*;

import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; Pluss mange Implementasjoner av forskjellige grensesnitt class RammeDemo { public static void main(string[] args) { JFrame

Detaljer

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag KANDIDATNUMMER: EKSAMEN EMNENAVN: Programutvikling EMNENUMMER: IMT3281 EKSAMENSDATO:05/12-2007 KLASSE: 06HBINDA/06HBINDP TID: 09.00 13.00 EMNEANSVARLIG: Øivind Kolloen ANTALL SIDER UTLEVERT: 7 TILLATTE

Detaljer

Gjennomgang av eksamen H99

Gjennomgang av eksamen H99 Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares

Detaljer

Flight Progress Strip System for Air Traffic Control Versjon: 3.0 Software Requirements Specification Dato: 21.11.2002. Gruppe nr:

Flight Progress Strip System for Air Traffic Control Versjon: 3.0 Software Requirements Specification Dato: 21.11.2002. Gruppe nr: SRS, versjon 3.0. Gruppe 1 Flight Progress Strip System for Air Traffic Control Versjon: 3.0 Software Requirements Specification Dato: 21.11.2002 Fag: Software Engineering Filformat: Gruppe nr: 1 Filnavn:

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 våren januar. Objektorientering i Java IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som

Detaljer

6108 Programmering i Java. Leksjon 8. GUI: Grafisk brukergrensesnitt. Del 2: 8.3 8.4 Roy M. Istad 2015

6108 Programmering i Java. Leksjon 8. GUI: Grafisk brukergrensesnitt. Del 2: 8.3 8.4 Roy M. Istad 2015 6108 Programmering i Java Leksjon 8 GUI: Grafisk brukergrensesnitt Del 2: 8.3 8.4 Roy M. Istad 2015 // Programforklaring // Noen nye import-setninger GUIprogram.java public class GUIprogram + vindu/hendelser

Detaljer

Grafiske brukergrensesnitt med Swing og AWT

Grafiske brukergrensesnitt med Swing og AWT Grafiske brukergrensesnitt med Swing og AWT - 1 av 11 INNHOLD INTRODUKSJON 3 VINDUER, RAMMER OG PANELER. 4 KOMPONENTER OG VINDUSELEMENTER 6 KNAPPER OG KNAPPELYTTERE.. 8 LAYOUT.. 10 APPENDIX. 11 2 av 11

Detaljer

Eksamensoppgave Vår 2012 Ordinær eksamen Bokmål. Videregående programmering. Eksamensdato: 06.06.2012. Studium/klasse: 2. klasse

Eksamensoppgave Vår 2012 Ordinær eksamen Bokmål. Videregående programmering. Eksamensdato: 06.06.2012. Studium/klasse: 2. klasse Eksamensoppgave Vår 2012 Ordinær eksamen Bokmål Fag: Videregående programmering Eksamensdato: 06.06.2012 Studium/klasse: 2. klasse Emnekode: IFT205 Eksamensform: Skriftlig Antall sider: 3 (inkludert denne)

Detaljer

INF1010. Grafisk brukergrensesni. med Swing og awt del 2. INF1010 - - Grafisk brukergrensesni4 II

INF1010. Grafisk brukergrensesni. med Swing og awt del 2. INF1010 - - Grafisk brukergrensesni4 II INF1010 Grafisk brukergrensesni. med Swing og awt del 2 1 GUI (Graphical User Interface)- programmering n n n Enkel behandling av knappetrykk mm. Layout av vinduer Om å lytte på knappetrykk med musa n

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1 INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt del 1 1 Hvordan lage et vindu på skjermen 2 Hvordan legge inn enkle elementer i vinduet 3 Hvordan lage et vindu med et sudokuspill 4 Hvordan lage en

Detaljer

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon Mål med kurset Java i INF 2400 Introduksjon til signalbehandling Lyd som anvendelse Få programmeringserfaring Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og

Detaljer

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

Detaljer

Flight Progress Strips System for Air Traffic Control Fag:

Flight Progress Strips System for Air Traffic Control Fag: Verifikasjon og validerings plan: Flight Progress Strips System for Air Traffic Control Fag: Gruppe nr: Veiledere: Versjon: 1.0 Dato: 21.11.2002 Software Engineering Filformat: 1 Filnavn: Børre Ludvigsen/Ky

Detaljer

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 101 - Grunnkurs i objektorientert programmering Eksamensdag : Tirsdag 4. juni 2002 Tid for eksamen : 09.00-15.00 Oppgavesettet

Detaljer

GUI («Graphical User Interface») del 2

GUI («Graphical User Interface») del 2 GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/

Detaljer

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye. ~KSAMENSOPPGA VE Les gjennom hele oppgavesettet før du begynner A besvare deloppgavene.. Hold deg til de identifikator-navnene som er brukt i oppgaveteksten, dog med unntak av metodenes parametemavn som

Detaljer

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2008 GUI - del 2

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2008 GUI - del 2 GUI (Graphical User Interface)-programmering Inf 1010-2008 GUI - del 2 Stein Gjessing Inst for Informatikk Univ. i Oslo Tidligere Hvordan få laget et vindu på skjermen Grafikk (tegning i vinduet) Hvordan

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 4. juni 2015 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider. Vedlegg:

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Informatikk II Emnekode: LO325E Faglig veileder: G.Milvang og H.Hemmer Gruppe(r): 2EA,2EB,2EC Dato:12.12.03 Eksamenstid:9 00-14 00 Eksamensoppgaven

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

Uke mars 2005 GUI - del 2. GUI (Graphical User Interface)-programmering

Uke mars 2005 GUI - del 2. GUI (Graphical User Interface)-programmering Uke10 29. mars 2005 GUI - del 2 Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering Forrige gang Hvordan få laget et vindu på skjermen Hvordan legge ulike komponenter

Detaljer

Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag:

Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag: Side: 1 Dokument type: Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag: Gruppe nr: Veiledere: Dato: 22.11.2002 Software Engineering Filformat: 1 Filnavn: Børre

Detaljer

INF 1010, vår 2005 Løsningsforslag uke 10

INF 1010, vår 2005 Løsningsforslag uke 10 INF 1010, vår 2005 Løsningsforslag uke 10 Anders Brunland 1. april 2005 Oppgave 1 Oppgave 15.4 i i Rett på Java. Løsningsforslag De forskjellige komponentene settes i metoden initcomponents. Her settes

Detaljer

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller. Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter

Detaljer

Kapittel 15: Grafiske brukergrensesnitt. Del II

Kapittel 15: Grafiske brukergrensesnitt. Del II Kapittel 15: Grafiske brukergrensesnitt Del II Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL Delprøve Kandidatnr: Prøvedato: 2. mars 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO196D Fagnavn: Videregående programmering med

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne I EKSAMENSOPPGA VE Side av 8 AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: PROGRAMMERING Grupper: laa, 1AB, lac, lia Eksamensoppgaven av: Tillatte hjelpemidler: best~r Antall sider (Inkl forsiden):

Detaljer

LO191D/LC191D Videregående programmering

LO191D/LC191D Videregående programmering LO191D/LC191D Videregående programmering Eksamen mai 2012 Løsningsforslag Oppgave 1 Klassen Destinasjon: // Oppgaven er uklar på hva som skal inn i klassen Destinasjon. // Her følger en minimumsutgave

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående

Detaljer

29.02.2012. GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser. En oversikt over kapittel 19 i boka

29.02.2012. GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser. En oversikt over kapittel 19 i boka GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc191d.php Høgskolen

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Informatikk II Emnekode: LO334E Faglig veileder: Hilde Hemmer Gruppe(r): 2EA,2EB,2EC Dato:14.12.04 Eksamenstid: 9 00-12 00 Eksamensoppgaven består av:

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; } Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

Detaljer

JPanel. Komponent hieraki. Window/JWindow. Applet/JApplet. JDialog. JFrame

JPanel. Komponent hieraki. Window/JWindow. Applet/JApplet. JDialog. JFrame Komponent hieraki Applet JPanel Component Container JComponent Panel Window JWindow Frame JApplet Dialog Brukes vanligvis som en ekstra container for å få til ønske layout. Legges til som en hvilken som

Detaljer

INF1010. Grafisk brukergrensesni. med Swing og awt del 2

INF1010. Grafisk brukergrensesni. med Swing og awt del 2 INF1010 Grafisk brukergrensesni. med Swing og awt del 2 GUI (Graphical User Interface)- programmering u u u Enkel behandling av knappetrykk mm. Layout av vinduer Om å lytte på knappetrykk med musa u Input

Detaljer

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output

Detaljer

GUI - del 2. Stein Gjessing Inst for Informatikk Univ. i Oslo

GUI - del 2. Stein Gjessing Inst for Informatikk Univ. i Oslo Inf 1010-2009 GUI - del 2 Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering g Tidligere Hvordan få laget et vindu på skjermen Hvordan legge ulike komponenter

Detaljer

OPPGAVE 5b og 8b Java Kode

OPPGAVE 5b og 8b Java Kode OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene

Detaljer

1. NetBeans IDE: Lage en enkel mobilapplikasjon

1. NetBeans IDE: Lage en enkel mobilapplikasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering

Detaljer

GUI («Graphical User Interface») del 2

GUI («Graphical User Interface») del 2 GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/ ifi/in1010/v18/gui/fx-intro-in1010.pdf

Detaljer

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

ANTDAGER = 358; I Ifra nyttår 08 til 08 1ed julaften

ANTDAGER = 358; I Ifra nyttår 08 til 08 1ed julaften ~tte hjelpemiddel: Alle trykte og håndskrevne --- Kandidaten må selv kontrollere at oppgavesettet er fullstendig. nnføring skal være med blå eller svart penn. Les gjennom hele oppgavesettet før du begynner

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting

Detaljer

INF 1010, vår 2005 Løsningsforslag uke 11

INF 1010, vår 2005 Løsningsforslag uke 11 INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006

Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Prosesser og tråder Datamaskinen lager prosesser. En prosess organiserer arbeidet i et program ved å administrere tråder. Det er

Detaljer

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne Side 1 av 7 Bokmålstekst Emne: PROGRAMMERING (nytt pensum, 10 studiep.) Grupper: laa, lab, lac, lia, lib, lic Eksamensoppgaven best~r av: Tillatte hjelpemidler: Antall sider (inkl. forsiden): 7 Alle trykte

Detaljer

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet TGA Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"

Detaljer

Objektorientert Programmering Ekstraordinær eksamen 2014

Objektorientert Programmering Ekstraordinær eksamen 2014 Objektorientert Programmering Ekstraordinær eksamen 2014 Høgskolen i Østfold 2014-01-13 Emnekode Emne ITF10611 Dato 13.01.2014 Eksamenstid 09:00-13:00 Hjelpemidler Faglærer Objektorientert Programmering

Detaljer

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering

Detaljer

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan

Detaljer

import java.io.*; import java.util.*; import javagently.text;

import java.io.*; import java.util.*; import javagently.text; //-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import

Detaljer

Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag:

Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag: Dokument type: Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag: Gruppe nr: Veiledere: Versjon: 1.0 Dato: 1.09.00 Software Engineering Filformat: 1 Filnavn: Børre

Detaljer

Inf 1010 GUI - del 2

Inf 1010 GUI - del 2 Inf 1010 GUI - del 2 Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 GUI (Graphical User Interface)-programmering Tidligere Hvordan få laget et vindu på skjermen Hvordan legge ulike komponenter

Detaljer

GUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer

GUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer GUI 3 JavaFX Mer interaksjon Hvordan gi input :l programmet INF1010 Stein Michael Storleer Innhold 1. Ta opp tråden fra sist 2. Input med TextField 3. Anonyme klasser 4. Lytte på alle noder i et grid 5.

Detaljer

INF1000 Prøveeksamen Oppgave 7 og 9

INF1000 Prøveeksamen Oppgave 7 og 9 INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med

Detaljer

Objektorientert design av kode. Refaktorering.

Objektorientert design av kode. Refaktorering. Objektorientert design av kode. Refaktorering. DEL 1 INF1010-forelesning 2. mars Ragnhild Kobro Runde Læringsmål Kjenne til og kunne bruke viktige prinsipper for god kodedesign. Kunne finne alternative

Detaljer

Eksamen. Objektorientert Programmering IGR 1372

Eksamen. Objektorientert Programmering IGR 1372 + JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV

Detaljer

INF2100. Oppgaver 23. og 24. september 2010

INF2100. Oppgaver 23. og 24. september 2010 INF2100 Oppgaver 23. og 24. september 2010 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med + og ; grammatikken ser du i figur 1 på neste side. Tallkonstanter består av bare ett

Detaljer

INF1010 våren Grensesnitt

INF1010 våren Grensesnitt INF1010 våren 2013 Torsdag 24. januar Grensesnitt Stein Gjessing Institutt for informatikk Dagens tema n n Norsk: Grensesnitt Engelsk: Interface n Les notatet Grensesnitt i Java av Stein Gjessing 2 Hva

Detaljer

INF1010 MVC i tekstbaserte programmer

INF1010 MVC i tekstbaserte programmer INF1010 MVC i tekstbaserte programmer Marit Nybakken marnybak@ifi.uio.no 9. februar 2004 Marit har ingen utdanning innen systemutvikling og vet antageligvis ikke hva hun prater om. Hun har dog skumlest

Detaljer

Kodetime for Nordstrand barneskole

Kodetime for Nordstrand barneskole Kodetime for Nordstrand barneskole av Veronika Heimsbakk og Lars Erik Realfsen 1 Hva er Processing? Processing er et programmeringsspråk som er gratis, og tilgjengelig for alle! Man kan programmere i Processing

Detaljer

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)

Detaljer

INF1010 våren 2006 Uke 19: 9. mai 2006 Et større eksempel: Solitaire (kabal)

INF1010 våren 2006 Uke 19: 9. mai 2006 Et større eksempel: Solitaire (kabal) Det ferdige spillet INF1010 våren 2006 Uke 19: 9. mai 2006 Et større eksempel: Solitaire (kabal) Stein Michael Storleer Institutt for informatikk Dette er kopier av lysark for en forelesning. Sidene er

Detaljer

Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr

Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr Fakultet Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet Den

Detaljer

Ol Emnekode: Faglig veileder: I L~~25 A - E!8 Viho~d~.1. F ntall oppga~ forsiden): 8 5. -;;;handskr~vn-;

Ol Emnekode: Faglig veileder: I L~~25 A - E!8 Viho~d~.1. F ntall oppga~ forsiden): 8 5. -;;;handskr~vn-; Emne: PROGRAMMERING Ol Emnekode: Faglig veileder: I L~~25 A - E!8 Viho~d~.1 Grupper: I Dato: laa, lab, lac, lia, ~IB, l~c, A_~~~) _~~~~12.~!3 -. Antall sider (inkl, Eksamensoppgaven best~r av: forsiden):

Detaljer

Java i INF 2310 Dagens tema

Java i INF 2310 Dagens tema Mål med kurset Introduksjon til bildebehandling Få programmeringserfaring Java i INF 2310 Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og bildebehandling i

Detaljer

Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr

Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr Fakultet Bredde Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 14.desember 2007 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasser: LO347D Web-applikasjoner med Java EE Nettstudenter

Detaljer

Kalkulator-leksjonen (nesten ferdig)

Kalkulator-leksjonen (nesten ferdig) Kalkulator-leksjonen (nesten ferdig) Introduksjon I denne leksjonen vil du lære hvordan du kan koble FXML-koden til Java-koden og gjøre app-en levende (interaktiv)! Steg 1: Opprette app-pakke, app-klasse,

Detaljer

Utplukk av Java (GUI, kode-konvensjon, Java og bildebehandling i J2SE. BufferedImage m/venner. polymorfisme, classpath, javadoc) UNIVERSITETET I OSLO

Utplukk av Java (GUI, kode-konvensjon, Java og bildebehandling i J2SE. BufferedImage m/venner. polymorfisme, classpath, javadoc) UNIVERSITETET I OSLO Java i INF 160 INSTITUTT FOR INFORMATIKK SVEIN BØE 1 GUI med Swing import java.awt.*; import javax.swing.*; public class GUI { public static main(string[] args) { JFrame frame = new JFrame("window title");

Detaljer

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien

Detaljer

Argumenter fra kommandolinjen

Argumenter fra kommandolinjen Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene

Detaljer

INF1000 Behandling av tekster

INF1000 Behandling av tekster INF1000 Behandling av tekster Marit Nybakken marnybak@ifi.uio.no 23. februar 2004 Tekster Vi kommer nesten aldri utenom å bruke tekststrenger i programmene våre, ikke minst fordi det nesten alltid skal

Detaljer

Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag:

Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag: Dokument type: Software Project Progress Report Flight Progress Strip System for Air Traffic Control. Fag: Gruppe nr: Veiledere: Versjon: 0.0 Dato: 01.11.2002 Software Engineering Filformat: 1 Filnavn:

Detaljer

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Repitisjonskurs. Arv, Subklasser og Grensesnitt Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett

Detaljer

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012 INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oblig 4Hybelhus litt mer tips enn i oppgaven Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,

Detaljer

IN Notat om I/O i Java

IN Notat om I/O i Java IN1010 - Notat om I/O i Java Mathias J.P. Stang, Tuva Kristine Thoresen, Ingrid Grønlie Guren 17. januar 2018 Dette notatet handler om I/O (input/output) i Java, og tar for seg innlesning fra terminal,

Detaljer

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd J INF1010 Tråder J Marit Nybakken marnybak@ifi.uio.no Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,

Detaljer

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering 4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering I dag (så langt

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer