MVC Model, View, Controller

Størrelse: px
Begynne med side:

Download "MVC Model, View, Controller"

Transkript

1 MVC Model, View, Controller Basert på tredeling av funksjonalitet Modell holder underliggende data View leser og visualiserer data Controller tolker input og endrer data Fordeler kan bytte ut hver enkelt del flere view mot samme data automatisk koordinering Mer komplekst

2 MVC-arkitekturen binder sammen komponenter og data

3 MVC i Swing View Controller lese vha. get-metoder endre vha. set/ add-metoder Modell endringshendelser

4 Typisk modell Klasse med uavhengige attributter kalt properties, basert på domenemodell F.eks. Person-klasse: name og , begge String-objekter dateofbirth, java.util.date-objekter Modellen må ha to egenskaper metoder for å lese og skrive attributtene kunne sende ut endringshendelser

5 Basert på JPanel Typisk komponent JLabel med tekst tilsvarende attributtnavn komponent tilpasset attributtets klasse/datatype F.eks. PersonPanel: JTextField for name (ingen syntaksbegrensninger) JTextField for address JPanel-komponenten har en modell-property leser og skriver modellens attributter lytter til endringer i modellens attributter

6 JavaBeans-baserte modeller En JavaBean har visse egenskaper og følger visse navngivingskonvensjoner Alle JavaBeans har et sett såkalte properties av ulike kategorier Alle JavaBeans er kodet iht. visse konvensjoner navngiving av metoder for å lese og skrive properties, read-metode: public <type> get<property>, f.eks. public String getname() write-metode: public void set<property>(<type> p), f.eks. public void setname(string name) generering av hendelser ved endringer av properties hendelsesklasse: PropertyChangeEvent metoder for å registrere PropertyChangeListener-lyttere: add/removepropertychangelistener

7 Typisk kallsekvens 1. Komponenter legger seg til som lytter på modell 2. Modellen legger lytteren inn i liste 3. Komponenten (eller annet objekt) endrer på en property i modellen 4. Modellen lager en endringshendelse og kaller endringsmetoden til alle lytterne 5. Lytterne reagerer på endringshendelsen. Lytterne får endringshendelsen uavhengig av hvilket objekt som endret property en

8 Bound properties En bound property genererer en PropertyChangeEvent ved endring Hver endring av property må skje gjennom set-metode, også interne endringer dersom property ens nye verdi er ulik den gamle, må endringen kringkastes lyttende objekter (dvs. registrerte objekter som implementerer PropertyChangeListener-grensesnittet) Mekanikken kan delegeres til et PropertyChangeSupportobjekt, som håndterer registrering av lyttere og kringkasting av hendelser add/removepropertychangelistener firepropertychange

9 Class PropertyChangeSupport public class PropertyChangeSupport This is a utility class that can be used by beans that support bound properties. You can use an instance of this class as a member field of your bean and delegate various work to it. Constructor: PropertyChangeSupport(Object sourcebean) Constructs a PropertyChangeSupport object. Methods: void addpropertychangelistener(propertychangelistener listener) Add a PropertyChangeListener to the listener list. void firepropertychange(string propertyname, boolean oldvalue, boolean newvalue) Report a boolean bound property update to any registered listeners.

10 Interface PropertyChangeListener public interface PropertyChangeListener extends EventListener A "PropertyChange" event gets fired whenever a bean changes a "bound" property. You can register a PropertyChangeListener with a source bean so as to be notified of any bound property updates. public void propertychange(propertychangeevent evt) This method gets called when a bound property is changed. Parameters: evt - A PropertyChangeEvent object describing the event source and the property that has changed.

11 Klassediagram PropertyChangeSupport JPanel 1 PersonPanel getmodel() : Person setmodel(person) 0..n model 1 Person getname() : String setname(string) addpropertychangelistener(propertychangelistener) 0..n pcs 1 listeners <<Interface>> PropertyChangeListener 0..n propertychange()

12 Typisk kallsekvens panel : PersonPanel addpropertychangelistener person : Person pcs : PropertyChangeSupport addpropertychangelistener setname firepropertychange propertychange configurepanel

13 Person-klassen (model) En attributt: name (kunne i tillegg ha hatt f.eks. address, ,,) Metoder for lese og skrive attributtverdier get/set-metodepar for hvert felt get-metodene er parameterløse og returnerer objekt av type tilsvarende attributtets set-metoden tar ett parameter av type tilsvarende attributtets og returnerer ingenting (void) Property-navn-konstanter objekt (String) som identifiserer property, f.eks. public final static NAME_PROPERTY = name ; konstantverdien brukes bl.a. i endringshendelsesobjekter for å angi hvilken property som er endret lyttere sjekker typisk hvilken property som er endret, for å kunne reagere riktig, f.eks. oppdatere tilsvarende tekstfelt

14 Person-klassen (model) Metoder for håndtere endringslyttere addpropertychangelistener(propertychangelistener) removepropertychangelistener(propertychangelistener) Beskyttet metode for å fyre av endringshendelser protected firepropertychange(property, oldvalue, newvalue) Delegerer til privat PropertyChangeSupport-instans private PropertyChangeSupport pcs = new PropertyChangeSupport(this);... public void addpropertychangelistener(propertychangelistener listener) { pcs.addpropertychangelistener(listener); }... protected void firepropertychange(string prop, Object old, Object ny) { pcs.firepropertychange(prop, oldvalue, newvalue); }

15 import java.beans.propertychangesupport; import java.beans.propertychangelistener; public class Person { public final static String NAME_PROPERTY = "Name"; private PropertyChangeSupport pcs; private String name = null; public Person() { pcs = new PropertyChangeSupport(this); } public String getname() { return name; } public void setname(string name) { String oldvalue = this.name; this.name = name; pcs.firepropertychange(name_property, oldvalue, name); } public void addpropertychangelistener(propertychangelistener listener) { pcs.addpropertychangelistener(listener); } }

16 PersonPanel-klassen (view) Modell-referanse et modell-attributt av typen Person all visning og editering skjer på dette objektet merk at modellen kan være null Property-orienterte subkomponenter JLabel tilsvarende property-navnet Lytter til property-endringer implements PropertyChangeListener public void propertychange(propertychangeevent evt)

17 import java.beans.*; import java.awt.event.*; import javax.swing.*; public class PersonPanel extends JPanel implements PropertyChangeListener { private Person model; private JTextField namefield; private JButton clearbutton; public PersonPanel() { namefield = new JTextField(); namefield.setcolumns(20); namefield.addactionlistener(new mytextaction()); add(namefield); clearbutton = new JButton("Clear"); clearbutton.addactionlistener(new ClearButtonAction()); add(clearbutton); } /** Action for text field * */ class mytextaction implements ActionListener { public void actionperformed(actionevent e) { model.setname(namefield.gettext()); } } /** Action for clearbutton * */ class ClearButtonAction implements ActionListener { public void actionperformed(actionevent e) { model.setname(""); } }

18 // Set model public void setmodel(person themodel) { model = themodel; model.addpropertychangelistener(this); } } // PropertyChangeListener public void propertychange(propertychangeevent evt) { if (evt.getpropertyname() == Person.NAME_PROPERTY) { namefield.settext(model.getname()); } }

19 Persons-prosjektet: Person-klassen er modellen til to PersonPanel view. Person-objektet (modellen) er observerbare alle vesentlige egenskaper kan leses vha. getmetoder Modellen sier fra når disse egenskapene endres lyttere kan registrere seg, så de får endringshendelser

20 import javax.swing.jpanel; import javax.swing.jframe; public class PersonPanelExample_Simple extends JPanel { private PersonPanel personpanela, personpanelb; private Person model; public PersonPanelExample_Simple() { model = new Person(); personpanela = new PersonPanel(); personpanela.setmodel(model); add(personpanela); personpanelb = new PersonPanel(); personpanelb.setmodel(model); add(personpanelb); } model model } public static void main(string args[]) { JFrame frame = new JFrame("..."); frame.add(new PersonPanelExample_Simple()); frame.pack(); frame.setvisible(true); }

21 Basiskomponenter Layout JList

22 Kontrollelementer

23 Hvordan bli kjent med en ny komponent Prøv den med SwingSet2-demo! Hva heter klassen og hvor ligger den i hierarkiet? JButton, arver fra AbstractButton JCheckBox, arver fra JToggleButton, som arver fra AbstractButton Hvilke data håndterer den og hvordan leses/settes de(t)? sannhetsverdier (boolean), leses/settes med isselected/setselected Hvilke vesentlige egenskaper har den? har ikon og tekst for angi mening (get/seticon, get/settext) Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? action-hendelsen for selected-egenskapen ActionListener, actionperformed og ActionEvent addactionlistener og removeactionlistener Prøv den i en enkel Swing-applikasjon!

24 JCheckBox Prøv den med SwingSet2-demo Hva heter klassen og hvor ligger den i hierarkiet? JCheckBox, arver fra JToggleButton, som arver fra Hvilke data håndterer den og hvordan leses/settes de(t)? sannhetsverdi (boolean) isselected/setselected Hvilke vesentlige egenskaper har den? ikon og tekst get/seticon og get/settext Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? action-hendelsen for selected-egenskapen ActionListener, actionperformed og ActionEvent addactionlistener og removeactionlistener Prøv den i en enkel Swing-applikasjon!

25 JSlider Prøv den med SwingSet2-demo Hva heter klassen og hvor ligger den i hierarkiet? JSlider, arver direkte fra JComponent Hvilke data håndterer den og hvordan leses/settes de(t)? heltallsverdi innen intervall get/setvalue, setminimum, setmaximum Hvilke vesentlige egenskaper har den? såkalte ticks m/tekst metoder for å angi hvilke ticks som finnes og om de og deres tekst skal tegnes Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? change-hendelsen for value-egenskapen ChangeListener, statechanged og ChangeEvent addchangelistener og removechangelistener Prøv den i en enkel Swing-applikasjon!

26 JTextField Prøv den med SwingSet2-demo Hva heter klassen og hvor ligger den i hierarkiet? JTextField, arver fra JTextComponent Hvilke data håndterer den og hvordan leses/settes de(t)? tekst (String) get/settext Hvilke vesentlige egenskaper har den? skriftstype (Font) og antall kolonner (columns) get/setfont, get/setcolumns Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? action-hendelsen for text-egenskapen ved trykk på ENTER-tast ActionListener, actionperformed og ActionEvent addactionlistener og removeactionlistener Prøv den i en enkel Swing-applikasjon!

27 JComboBox Prøv den med SwingSet2-demo Hva heter klassen og hvor ligger den i hierarkiet? JComboBox, arver fra JComponent Hvilke data håndterer den og hvordan leses/settes de(t)? lister (model) og valg av ett element (selection) get/setmodel, get/setselecteditem, get/setselectedindex Hvilke vesentlige egenskaper har den? om tekstfeltet er editerbart: get/seteditable Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? item-hendelsen for selecteditem/selectedindex-egenskapen action-hendelsen for selecteditem/selectedindex-egenskapen Prøv den i en enkel Swing-applikasjon!

28 JSpinner Prøv den med SwingSet2-demo Hva heter klassen og hvor ligger den i hierarkiet? JSpinner, arver fra JComponent Hvilke data håndterer den og hvordan leses/settes de(t)? objekter som inngår i en ordnet sekvens iht. reglene implementert i en SpinnerModel og getnextvalue/getpreviousvalue-metodene (se kodeeksempel) get/setvalue Hvilke vesentlige egenskaper har den?? Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? change-hendelsen for value-egenskapen Prøv den i en enkel Swing-applikasjon!

29 JFormattedTextField Prøv den med SwingSet2-demo Hva heter klassen og hvor ligger den i hierarkiet? JFormattedTextField, arver fra JTextField Hvilke data håndterer den og hvordan leses/settes de(t)? objekter som har en tekstsyntaks iht. reglene implementert i en JFormattedTextField.AbstractFormatter og valuetostring/stringtovalue-metodene (se kodeeksempel) get/setvalue Hvilke vesentlige egenskaper har den?? Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? propertychange-hendelsen for value-egenskapen PropertyChangeListener, propertychanged og PropertyChangeEvent addpropertychangelistener og removepropertychangelistener Prøv den i en enkel Swing-applikasjon!

30 Eksempel: J... Prøv den med SwingSet2-demo Hva heter klassen og hvor ligger den i hierarkiet? J, arver fra J Hvilke data håndterer den og hvordan leses/settes de(t)? <type> get/set Hvilke vesentlige egenskaper har den?? Hvilke syntaktiske hendelser genererer komponenten og for hvilke egenskaper? Hvilket lyttergrensesnitt og metoder og hendelsesklasser inngår i håndtering av hendelsen? -hendelsen for -egenskapen Listener, Performed og Event addlistener og removelistener Prøv den i en enkel Swing-applikasjon!

31 Oppsummering Alle basiskomponenter har samme struktur klassenavn og superklasse dataverdi(er) essensielle egenskaper hendelser og tilhørende grensesnitt, metoder og klasser Å bli kjent med en komponent innebærer å oppsøke informasjon om hver del og prøve den ut Hendelser De fleste komponenter har egne typer hendelser Noen komponenter følger JavaBeans-mønsteret og genererer PropertyChangeEvent er

32 JList, JTree, JTable JList

33 JList ListModel ListSelectionModel ListCellRenderer

34 JList View lese vha. get-metoder MVC Modellen Model Controller endre vha. set/ add-metoder endringshendelser

35 JList ListModel JList sitt modell-grensesnitt, altså den delen som fyller modell-rollen ListSelectionModel Håndtering av bruker-interaksjon, altså en del av controller-rollen ListCellRenderer Styrer visning av elementene i lista, altså en del av view-rollen

36 Scrolling JList støtter ikke scrolling. Det må legges på eksplisitt. Det gjøres ved å pakke den inn i en JScrollPane JScrollPane myjscrollpane = new JScrollPane(myJList); myjscrollpane.setverticalscrollbarpolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); add(myjscrollpane);

37 Objekt- : ListDataListener diagram modell : ListModel list : JList model : ListSelectionListener renderer renderer : ListCellRenderer selectionmodel selection : ListSelectionModel : Component

38 Interface ListModel, JList sin modell get-metoder (gir tilgang til data) getsize() størrelsen til lista getelementat(index) elementene i lista lyttere og hendelser registrering av lytter: add/removelistdatalistener(listdatalistener l)

39 Interface ListDataListener JList implementerer denne Void contentschanged(listdataevent e) Sent when the contents of the list has changed in a way that's too complex to characterize with the previous methods. Void intervaladded(listdataevent e) Sent after the indices in the index0,index1 interval have been inserted in the data model. Void intervalremoved(listdataevent e) Sent after the indices in the index0,index1 interval have been removed from the data model.

40 DefaultListModel Alle JList får automatisk en modell av klassen DefaultListModel. Vi kan legge inn en slik direkte: private JList myjlist; private DefaultListModel model; public JListExample_1() { model = new DefaultListModel(); myjlist = new JList(model); model.addelement("linje 1"); model.addelement("linje 2"); model.addelement("linje 3"); add(myjlist); }

41 JList og ListModel... Sentrale teknikk delegering Hendelse-lytter-pattern XxxEvent-klasse XxxListener-interface add/removexxxlistener Sentrale klasser/objekter ListModel ListDataListener ListDataEvent Sentrale metoder : ListDataListener list : JList addlistdatalistener og contentschanged getsize og getelementat 1: addlistdatalistener(listdatalistener) 2: contentschanged(listdataevent) 3: getsize( ) model 4: getelementat(int) mo de ll : Li stmo de l

42 ListSelectionModel Den eneste interaksjonen en JList støtter er tre typer seleksjon: seleksjon av enkelt element seleksjon av sekvens av elementer seleksjon av sett av sekvenser, altså ingen begrensning på seleksjonen Det er JList sin listselectionmodel-property, som håndterer seleksjonen objektet inneholder og manipulerer seleksjonen, basert på brukerens interaksjon modusen (selectionmode-property en) angir hvilken av de tre typene seleksjonslogikk som gjelder

43 Seleksjon ListSelectionModel-klassen håndterer logikken SINGLE_SELECTION Valg av kun ett elemenent Valg av nytt element fjerner eksisterende valg SINGLE_INTERVAL_SELECTION Valg av flere etterfølgende elementer Shift-klikk for å utvide seleksjonen i begge retninger MULTIPLE_INTERVAL_SELECTION Valg uten begrensninger på antall eller intervaller Control-klikk toggler enkelt-elementer Shift-klikk utvider seleksjonen

44 ListSelectionListener JList kringkaster endringer i seleksjonen til sine ListSelectionListenerlyttere Ved å registrere en slik lytter, kan andre klasser/objekter reagere på brukerens endringer i seleksjonen Typisk bruk 1 list-detail- pattern : liste med elementer, med ekstra panel med detaljer Viktige egenskaper vises i lista, med detaljer i et panel ved siden av. Når seleksjonen endres, oppdateres detalj-panelet Typisk bruk 2 Action-objekter bruker seleksjon for å utføre oppgaven sin, dvs. hente ut objekt å utføre aksjon på Seleksjonen brukes også for å aktivere/deaktivere aksjonen

45 ...seleksjon Sentrale teknikker delegering Hendelse-lytter-pattern XxxEvent-klasse XxxListener-interface add/removexxxlistener Sentrale klasser/objekter ListSelectionModel ListSelectionListener ListSelectionEvent Sentrale metoder JList.addListSelectionListener ListSelectionListener.valueChanged list : JList 8: ad dl istse le cti on Liste ne r(l istse le cti on Liste ne r) : L istse le cti on Liste ne r 10: valuechanged(listselectionevent) 9: addlistselectionlistener(listselectionlistener) selectionmodel : ListSelectionModel

46 View-delen av JList ListCellRenderer interface som bygger bro mellom JList sine behov for å tegne rader i lista og Componentsubklasser gjenbruker en eksisterende Component-subklasse for å tegne hver linje i en JList ved å skrive egne komponenter for visning av liste-elementer, kan JList skreddersys visning av egne data

47 JList og ListCellRenderer JList delegerer tegning av hver element i lista til en ListCellRenderer getcellrenderer ListCellRenderer configurerer og returnerer en Component getlistcellrenderercomponent Component-objektet har en (foretrukket) størrelse og kan tegne seg selv getpreferredsize paintcomponent Siste Swing-versjon støtter layout i flere kolonner

48 JList og ListCellRenderer... list : JList 5: getlistcellrenderercomponent(jlist, Object, int, boolean, boolean) renderer renderer : ListCellRenderer 6: getpreferredsize( ) Sentral teknikk delegering Sentrale klasser/objekter ListCellRenderer Component 7: paint(graphics) : Component

49 JList og ListCellRenderer... Omtrentlig sekvens av operasjoner spør ListModel om størrelse getsize() itererer over alle elementene spør om verdi getelementat(int) ber renderer konfigurere og returnere komponent spør om størrelsen og gir plass ber komponenten tegne seg selv posisjon og størrelse huskes slik at en vet hvilke linjer som er hvor for hver linje som endres, gjentas dette, f.eks. verdi, seleksjon og fokus

JList, JTree, JTable. JList

JList, JTree, JTable. JList JList, JTree, JTable JList JList ListModel ListSelectionModel ListCellRenderer JList View lese vha. get-metoder MVC Modellen Model Controller endre vha. set/ add-metoder endringshendelser JList ListModel

Detaljer

Pensum SWING/MCV delen av TDT4180- MMI. Vår 2009 Dag Svanæs, IDI

Pensum SWING/MCV delen av TDT4180- MMI. Vår 2009 Dag Svanæs, IDI Pensum SWING/MCV delen av TDT4180- MMI Vår 2009 Dag Svanæs, IDI Pensum Kun de sentrale delene av det som er gjennomgått er direkte eksamensrelevant. Andre deler er relevant for øvinger, men vil ikke bli

Detaljer

MVC i Swing, trinn for trinn

MVC i Swing, trinn for trinn MVC i Swing, trinn for trinn Læringsmål: Forståelse av komponenthierarkier Forståelse av forhold mellom komponent og datamodell Hvordan lage modell for egne type data Bruk av interaksjonsdiagrammer UML

Detaljer

EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300 Side 1 av 8 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 Lørdag

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

EKSAMEN I FAG TDT4180 - MMI Mandag 4. august 2008 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 - MMI Mandag 4. august 2008 Tid: kl. 0900-1300 Side 1 av 11 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

Detaljer

EKSAMEN I FAG TDT4180 - MMI Lørdag 4. juni 2005 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 - MMI Lørdag 4. juni 2005 Tid: kl. 0900-1300 Side 1 av 7 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 Lørdag

Detaljer

EKSAMEN I FAG TDT4180 MMI Onsdag 28. mai 2008 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 MMI Onsdag 28. mai 2008 Tid: kl. 0900-1300 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Hallvard Trætteberg, Tlf: 73 59 34 43 EKSAMEN I FAG TDT4180 MMI Onsdag 28.

Detaljer

Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI)

Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI) Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4180 Menneske-Maskin- Interaksjon (MMI) Faglig kontakt under eksamen: Dag Svanæs Tlf.: 91897536 Eksamensdato: 5. August Eksamenstid

Detaljer

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 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 Torsdag 27. mai 2010

Detaljer

EKSAMEN I FAG TDT4180 MMI Lørdag 15. august 2009 Tid: kl

EKSAMEN I FAG TDT4180 MMI Lørdag 15. august 2009 Tid: kl 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 Lørdag 15. august

Detaljer

EKSAMEN I FAG TDT MMI Mandag 15. august 2011 Tid: kl

EKSAMEN I FAG TDT MMI Mandag 15. august 2011 Tid: kl Side 1 av 9 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

Detaljer

EKSAMEN I FAG TDT4180 MMI Lørdag 21. august 2010 Tid: kl

EKSAMEN I FAG TDT4180 MMI Lørdag 21. august 2010 Tid: kl 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 Lørdag 21. august

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

EKSAMEN I FAG TDT4180 - MMI Lørdag 26. mai 2012 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 - MMI Lørdag 26. mai 2012 Tid: kl. 0900-1300 Side 1 av 9 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 Lørdag

Detaljer

EKSAMEN I FAG TDT4180/IT2401 MMI Onsdag 23. mai 2007 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180/IT2401 MMI Onsdag 23. mai 2007 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/IT2401 MMI Onsdag 23.

Detaljer

EKSAMEN I FAG TDT4180 MMI Onsdag 18. mai 2009 Tid: kl

EKSAMEN I FAG TDT4180 MMI Onsdag 18. mai 2009 Tid: kl 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 Onsdag 18. mai 2009

Detaljer

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP. Løsningsforslag

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP. Løsningsforslag NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Hallvard Trætteberg, Tlf: 73 59 34 43 Løsningsforslag EKSAMEN I FAG TDT4180

Detaljer

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl

EKSAMEN I FAG TDT4180 MMI Torsdag 27. mai 2010 Tid: kl 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 Torsdag 27. mai 2010

Detaljer

Oppgave 1 (30%) Grensesnittdesign

Oppgave 1 (30%) Grensesnittdesign Side 1 av 7 Oppgave 1 (30%) Grensesnittdesign Firmaet Glade Bad A/S planlegger en ny serie med badefliser for salg i sine butikker. Forretningsideen er at kundene skal kunne designe sine egne mønstre utifra

Detaljer

EKSAMEN I FAG TDT4180 Menneske-maskin-interaksjon. Lørdag 27. juni 2006 Kl. 09.00 13.00

EKSAMEN I FAG TDT4180 Menneske-maskin-interaksjon. Lørdag 27. juni 2006 Kl. 09.00 13.00 Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG

Detaljer

Konseptuell modell, skjermdesign og konstruksjon

Konseptuell modell, skjermdesign og konstruksjon Konseptuell modell, skjermdesign og konstruksjon Vedlegg til øving D3 1. Gjennomgående eksempel 2. Beskrivelse av konseptuell modell 3. Skjermdesign, kobling mot konseptuell modell og oppførsel 4. Dokumentasjon

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

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP LØSNINGSFORSLAG

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP LØSNINGSFORSLAG NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 LØSNINGSFORSLAG EKSAMEN I FAG TDT4180/IT2401

Detaljer

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Side 1 av 9 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 Lørdag

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

Løsningsforslag (Løsningene i kursiv)

Løsningsforslag (Løsningene i kursiv) Institutt for Datateknikk og Informasjonsvitenskap Løsningsforslag (Løsningene i kursiv) Eksamensoppgave i TDT4180 Menneske- Maskin-Interaksjon (MMI) Faglig kontakt under eksamen: Dag Svanæs Tlf.: 91897536

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

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

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

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

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00 Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG

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

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

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

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

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

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

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

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

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

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

Løsningsforslag fra faglærere

Løsningsforslag fra faglærere Side 1 av 13 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 Hallvard Trætteberg, Tlf: 73 59

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

Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon

Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4180 Menneske-maskin-interaksjon Faglig kontakt under eksamen: Hallvard Trætteberg Tlf.: 91897263 Eksamensdato: 31. mai Eksamenstid

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

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

LC191D/LO191D Videregående programmering mai 2010

LC191D/LO191D Videregående programmering mai 2010 LC191D/LO191D Videregående programmering mai 2010 Løsningsforslag Oppgave 1 Transporttype er en tekst som er felles for klassene AnnenEgenTransport og Kollektivtransport. Vi legger den derfor i klassen

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

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

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

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

EKSAMEN I FAG SIF8040 - MMI OG GRAFIKK Lørdag 16. august 2003 Tid: kl. 0900-1400

EKSAMEN I FAG SIF8040 - MMI OG GRAFIKK Lørdag 16. august 2003 Tid: kl. 0900-1400 Side 1 av 6 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG SIF8040 - MMI OG GRAFIKK

Detaljer

case forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg

case forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg Objekt-interaktor med valg AMS- case forts. Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt Relatert objekt velges ofte blant mange kandidater Output av kandidat-sett Input

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

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

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

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

Kapittel 7: Mer om arv

Kapittel 7: Mer om arv Kapittel 7: Mer om arv 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 Cappelen Akademisk Forlag,

Detaljer

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

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

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

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

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)

Detaljer

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

1 t:n'v'\ekode LO325E. Alle ~vne og trykte. GOd'"j(jent kalkulator

1 t:n'v'\ekode LO325E. Alle ~vne og trykte. GOd'j(jent kalkulator 1 t:n'v'\ekode j Emne: 11nformatiklc Il LO325E I Faglig veileder Hilde Hemmer 1 Gruppe(r) I DOtO:14~1~ E ksamenstld 900-1400 I Eksamen~pgaven består av: Antall sider (Inkl forsiden og vedlegg):6 Antal

Detaljer

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Arv. Book book1 = new Book(); book1. title = Sofies verden class Book { String title; } class Dictiona ry extends Book { Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)

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

AMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

AMS-case forts. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt AMS-case forts. Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt Objekt-interaktor med valg Relatert objekt velges ofte blant mange kandidater Output av kandidat-sett Input av

Detaljer

OO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0

OO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0 OO-eksempel I eksemplet er det deklarert tre klasser: 1) Fag (skal instansieres ett objekt for hvert fag) 2) Student (skal instansieres ett objekt for hver student) 3) Studenter (abstrakt klasse skal ikke

Detaljer

EKSAMEN I FAG TDT4100 Objektorientert programmering. Fredag 6. juni 2008 Kl. 09.00 13.00

EKSAMEN I FAG TDT4100 Objektorientert programmering. Fredag 6. juni 2008 Kl. 09.00 13.00 NTNU Norges teknisknaturvitenskapelige universitet Side 1 av 11 Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap BOKMÅL EKSAMEN I FAG

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

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

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4» < T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

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

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Tirsdag 2. juni 2009, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under

Detaljer

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til 09.00-12.00 Ant. oppgaver 6

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til 09.00-12.00 Ant. oppgaver 6 EKSAMENSFORSIDE Fagnr. OBJ208a Tittel Objektorientert systemutvikling 1 Ansvarlig faglærer Viggo Holmstedt Klasse(r) IS 2 og IN 2 Eksamensoppgaven består av følgende: Tillatte hjelpemidler: Dato 17.12.2008

Detaljer

(MVC - Model, View, Control)

(MVC - Model, View, Control) INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Lørdag 22. mai 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under

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

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på

Detaljer

Dagens forelesning. Husk prøveeksamen Fredag 15/3-13 kl 12 i R1. Iterator-teknikken. Eksempel med bruk av Iterator og Iterable-grensesnittene

Dagens forelesning. Husk prøveeksamen Fredag 15/3-13 kl 12 i R1. Iterator-teknikken. Eksempel med bruk av Iterator og Iterable-grensesnittene Dagens forelesning Iterator-teknikken Hva er en Iterator og hvorfor bruke den? Hvordan virker en Iterator? Vi lager en Iterator for tegnene i en String Iterable-grensesnittet og for-løkker Eksempel med

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

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

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

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

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på

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

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2

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

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

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

Eksamensoppgave i TDT4100 Objektorientert programmering med Java Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering med Java Faglig kontakt under eksamen: Rune Sætre Tlf.: 452 18 103 Eksamensdato: 2013, torsdag

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 4. juni 2005 Tid for eksamen: 0900 1500 Oppgavesettet er på 5 sider. Vedlegg: Tillatte hjelpemidler: INF1010 Objektorientert

Detaljer

Et enkelt rammeverk for kjøring av OpenGL-programmer i Java

Et enkelt rammeverk for kjøring av OpenGL-programmer i Java 1 Et enkelt rammeverk for kjøring av OpenGL-programmer i Java JOGL2 API og dokumentasjon kan lastes ned fra siden: http://www.aitel.hist.no/fag/_jva/forelesninger/grafikk/grafikk_h2015/nedlasting_og_installasjonsveiledning_jogl2.pdf

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)

Detaljer