Pensum SWING/MCV delen av TDT4180- MMI. Vår 2009 Dag Svanæs, IDI
|
|
- Oda Caspersen
- 7 år siden
- Visninger:
Transkript
1 Pensum SWING/MCV delen av TDT4180- MMI Vår 2009 Dag Svanæs, IDI
2 Pensum Kun de sentrale delene av det som er gjennomgått er direkte eksamensrelevant. Andre deler er relevant for øvinger, men vil ikke bli gitt til eksamen. Eksamensrelevant pensum begrenser seg til følgende: 1. ActionListener. - Ideen om en callback for å håndtere hendelser. 2. Modeller i MVC. - Skille data fra presentasjon. - Kunne lage sin egen modell ved å subklasse en default modell. 3. Bruk av JavaBeans sine mekanismer for å lage en egen modell. - Riktig bruk av (bounded) properties og support klassen. 4. Kunne lage et eget View til en egen beans-basert modell v.h.a. JPanel. - Riktig bruk av oppdateringer. 5. JList. - List modell og seleksjonsmodell. - LineRenderer Kunne lage sin egen. 6. Modeller kan ha modeller. Kunne lage en modell til en modell, og forstå hvorfor dette er nyttig.
3 1. En enkel knapp /** * A simple JButton in a JPanel * The JPanel lives in the contentpane of a JFrame. * DS 2005, TDT4180 */ import javax.swing.*; public class ButtonExample extends JPanel { /** * Constructor for objects of class ButtonExample */ public ButtonExample() { add(new JButton("Press here")); public static void main (String args[]) { JFrame frame = new JFrame("Button example"); frame.getcontentpane().add(new ButtonExample()); frame.pack(); frame.setvisible(true); JFrame ContentPane JPanel subclass JButton
4 1. Interface ActionListener Klippet fra Sun s AWT/SWING dokumentasjon: java.awt.event Interface ActionListener The listener interface for receiving action events. The class that is interested in processing an action event implements this interface, and the object created with that class is registered with a component, using the component's addactionlistener method. When the action event occurs, that object's actionperformed method is invoked. Methods public void actionperformed(actionevent e) Invoked when an action occurs.
5 1. ActionListener. Det finnes flere måter å løse problemet med hvilke objekter som skal implementere ActionListener interfacet og motta action hendelser fra f.eks. en JButton. Følgende strategier er persum: A. Meldingen mottas av selve det JPanel som kjører grensesnittet. B. Indre klasser i JPanel. C. Det opprettes en eksplisitt ekstern klasse.
6 1A. Action listener i JPanel /** Example 1A, TDT This example shows the use of an action listener by letting the JPanel implement the ActionListener interface. This is done by implementing the method "actionperformed". */ import javax.swing.*; import java.awt.event.*;... JPanel implements ActionListener public class ButtonExample_Panel extends JPanel implements ActionListener { private JTextField mytextfield; // The text field. private JButton mybutton; // The button. // Constructor for objects of class ButtonExample_Panel public ButtonExample_Panel() { mybutton = new JButton("Press here"); // Create new JButton object. mybutton.addactionlistener(this); // Add this JPanel as action listener. add(mybutton); // Add the JButton to the panel. mytextfield = new JTextField(); // Create and add new textfield.. mytextfield.setcolumns(20); add(mytextfield); mytextfield.settext("..."); mybutton.addactionlistener(this); public void actionperformed(actionevent e) /** Actions for mybutton **/ public void actionperformed(actionevent e) { // This method is called by JButton. mytextfield.settext("hello world."); public static void main (String args[]) { JFrame frame = new JFrame("Button example"); frame.getcontentpane().add(new ButtonExample_Panel()); frame.pack(); frame.setvisible(true);
7 1A. Detaljer /** Constructor for objects of class ButtonExample_Panel **/ public ButtonExample_Panel() { mybutton = new JButton("Press here"); // Create new JButton object. mybutton.addactionlistener(this); // Add this JPanel as action listener. add(mybutton); // Add the JButton to the panel. mytextfield = new JTextField(); // Create and add new textfield.. mytextfield.setcolumns(20); add(mytextfield); mytextfield.settext("..."); /** Actions for mybutton **/ public void actionperformed(actionevent e) { mytextfield.settext("hello world."); // Called by JButton.
8 1B. ActionListener i indre klasse /** Example 1B, TDT This example shows the use of an action listener by letting the JPanel have an innner class "MyButtonAction" that implements the ActionListener interface. **/ import javax.swing.*; import java.awt.event.*;... JPanel public class ButtonExample_Innerclass extends JPanel { private JTextField mytextfield; private JButton mybutton; /** Constructor for objects of class ButtonExample_Innerclass */ public ButtonExample_Innerclass() { mybutton = new JButton("Press here"); mybutton.addactionlistener(new MyButtonAction()); add(mybutton); mytextfield = new JTextField(); mytextfield.setcolumns(20); add(mytextfield); mytextfield.settext("..."); /** Actions for mybutton **/ class MyButtonAction implements ActionListener { public void actionperformed(actionevent e) { mytextfield.settext("hello world."); mybutton.addactionlistener( new MyButtonAction()); class MyButtonAction implements ActionListener public static void main (String args[]) { JFrame frame = new JFrame("Button example"); frame.getcontentpane().add(new ButtonExample_Innerclass()); frame.pack(); frame.setvisible(true);
9 1B. Detaljer /** Constructor for objects of class ButtonExample_Innerclass */ public ButtonExample_Innerclass() { mybutton = new JButton("Press here"); mybutton.addactionlistener(new MyButtonAction()); add(mybutton); mytextfield = new JTextField(); mytextfield.setcolumns(20); add(mytextfield); mytextfield.settext("..."); /** Actions for mybutton **/ class MyButtonAction implements ActionListener { public void actionperformed(actionevent e) { mytextfield.settext("hello world.");
10 1C. Action listener i egen klasse /** Example 1C, TDT This example shows the use of an action listener by making an explicit "controller" class for the JButton. */ import javax.swing.*; import java.awt.event.*; public class ButtonExample_WithController extends JPanel { public JTextField mytextfield; private JButton mybutton; /** * Constructor for objects of class ButtonExample_WithController */ public ButtonExample_WithController() { mybutton = new JButton("Press here"); mybutton.addactionlistener(new ButtonExample_Controller(this)); add(mybutton); mytextfield = new JTextField(); mytextfield.setcolumns(20); add(mytextfield); mytextfield.settext("..."); public JTextField mytextfield; mybutton.addactionlistener(new ButtonExample_Controller(this)); public static void main (String args[]) { JFrame frame = new JFrame("Button example"); frame.getcontentpane().add(new ButtonExample_WithController()); frame.pack(); frame.setvisible(true);
11 1C. Egen controller klasse /** Explicit controller class. */ import java.awt.event.*; public class ButtonExample_Controller implements ActionListener { private ButtonExample_WithController mypanel; private ButtonExample_WithController mypanel; /** * Constructor for objects of class ButtonExample_Controller */ public ButtonExample_Controller(ButtonExample_WithController thepanel) { mypanel = thepanel; /** Actions for mybutton **/ public void actionperformed(actionevent e) { mypanel.mytextfield.settext("hello world."); mypanel.mytextfield.settext("hello world.");
12 2. MVC arkitektur Skiller data fra presentasjon. View lese vha. get-metoder Modell Controller endre vha. set/ add-metoder endringshendelser
13 SliderSliderExample Design to slidere, verdiområde 0-20 når den ene beveges, følger den andre etter i motsatt retning Kode Hendelse i slider2: slider1.value = 20 slider2.value og omvendt ved hendelse i slider1: slider2.value = 20 slider1.value
14 SliderSliderExample Konstruksjon SliderSliderExample arver fra (extends) JPanel to JSlider-instanser SliderSliderExample implementerer ChangeListener, og lytter på de to JSliderinstansene
15 SliderSliderExample Konfigurering legger til lytter Flytter på slider1 mottar endringshendelse leser slider1 sin verdi setter slider2 sin verdi Tilsvarende dersom slider2 flyttes på
16 SliderSlider Example sequence vs. collaboration diagram
17 SliderSliderSliderExample Design tre slidere, verdiområde 0-20 når ene av dem beveges, følger de andre etter Slider1_verdi = Slider2_verdi = Slider3_verdi
18 SliderSliderSliderExample Konstruksjon SliderSliderSliderExample arver fra (extends) JPanel to JSlider-instanser SliderSliderSliderExample implementerer ChangeListener, og lytter på de tre JSliderinstansene Vil denne konstruksjonen skalere til 4+ antall slidere?
19 Problem med konstruksjonen Ved endring av en må alle de andre oppdateres n x n krysskoblinger gjør koden komplisert Når én til legges til, må logikken for de andre endres Essensielt samme data spredd på flere objekter Alle til/fra alle
20 Alternativ konstruksjonen Innføre eget objekt for lagring av data, en såkalt modell Komponentene viser frem og endrer dataene i dette modellen Hver komponent forholder seg bare til modellen, ikke de andre Modellen administrerer oppdatering av registrerte avhengige objekter Alle til/fra én
21 Sammenligning Tydeligere rollefordeling Mer robust og skalerbar kode Alle til/fra alle vs. Alle til/fra én n <= 3 n >= 3
22 SlidersCommonModelExample Innfører et skille mellom visning og endring av data og selve dataene visning og endring gjøres av komponenten dataene lagres i en såkalt modell og håndteres gjennom et veldefinert grensesnitt (API) De tre sliderne har en felles modell
23 SlidersCommonModelExample Swing inneholder en rekke standardmodeller Hver modell er tilpasset en eller flere standardkomponenter Det finnes en standardmodell kalt BoundedRangeModel for intervall i intervall: minimum- og maksimum-verdier verdi-interval innenfor min- og maks-verdiene min value value + extent max DefaultBoundedRangeModel implementerer BoundedRangeModel JSlider-klassen bruker allerede en slik modell!
24 Felles modell for slider-objektene slider1:jslider slider2:jslider slider3:jslider model: BoundedRangeModel
25 Kode for delt modell public class SlidersCommonModelExample extends JPanel { // internal components: private JSlider slider1; private JSlider slider2; private JSlider slider3; private BoundedRangeModel model; // Shared model public SlidersCommonModelExample() { // create and configure model: model = new DefaultBoundedRangeModel(10, 0, 0, 20); // value, extent, min, max slider1 = new JSlider(model); slider2 = new JSlider(model); slider3 = new JSlider(model);. // create with shared model // create with shared model // create with shared model // remember to add them to the panel add(slider1); add(slider2); add(slider3); slider1:jslider slider2:jslider model: BoundedRangeModel slider3:jslider
26 SlidersCommonModelExample JPanel Dette skjer bak kulissene : SliderCommonModelExample slider2 slider1 slider3 JSlider model <<Interface>> BoundedRangeModel
27 2B. Egen modellklasse /** /** A JList with a self made model. */ import javax.swing.*; import java.awt.*; public class JListModelExample_0 extends JPanel { private JList myjlist; private MyListModel_0 model; /** * Constructor for objects of class JListModelExample_1 */ public JListModelExample_0() { model = new MyListModel_0(); myjlist = new JList(model); private MyListModel_0 model; myjlist = new JList(model); JScrollPane myjscrollpane = new JScrollPane(myJList); myjscrollpane.setverticalscrollbarpolicy(jscrollpane.vertical_scrollb AR_ALWAYS); setlayout(new BorderLayout()); add(myjscrollpane,borderlayout.north); public static void main (String args[]) { JFrame frame = new JFrame("JList example"); frame.getcontentpane().add(new JListModelExample_0()); frame.pack(); frame.setvisible(true);
28 2B. Egen modellklasse /** Egen modellklasse */ import javax.swing.abstractlistmodel; public class MyListModel_0 extends AbstractListModel { /** * Constructor for objects of class PersonListModel */ public MyListModel_0() { public int getsize() { return 100; extends AbstractListModel (AbstractListModel implements ListModel) Interface ListModel: getsize public int getsize() Returns the length of the list. getelementat public Object getelementat(int index) Returns the value at the specified index. public Object getelementat(int i) { return ((i+1)+"*"+(i+1)+"="+(i+1)*(i+1));
29 3 & 4. Egen komponent og modell View lese vha. get-metoder SWING komponent Modell Controller endre vha. set/ add-metoder endringshendelser
30 Typisk modell Klasse med uavhengige attributter kalt properties, basert på domenemodell F.eks. PersonModel-klasse: name og adresse, begge String-objekter Modellen må ha to egenskaper metoder for å lese og skrive attributtene kunne sende ut endringshendelser
31 Typisk komponent Basert på JPanel JLabel med tekst tilsvarende attributtnavn komponent tilpasset attributtets klasse/ datatype F.eks. PersonPanel: JTextField for name og address JPanel-komponenten har en modell-property leser og skriver modellens attributter lytter til endringer i modellens attributter
32 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
33 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
34 Bound properties En bound property genererer en PropertyChangeEvent ved endring Hver endring av property må skje gjennom setmetode, 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 PropertyChangeSupport-objekt, som håndterer registrering av lyttere og kringkasting av hendelser add/removepropertychangelistener firepropertychange
35 Klassediagram PropertyChangeSupport JPanel 1 PersonPanel getmodel() : PersonModel setmodel(personmodel) 0..n model 1 PersonModel getname() : String setname(string) addpropertychangelistener(propertychangelistener) 0..n pcs 1 listeners <<Interface>> PropertyChangeListener 0..n propertychange()
36 Typisk kallsekvens panel : PersonPanel person : PersonModel addpropertychangelistener(listener) Add the listener User inputs new name string John setname( John ) firepropertychange propertychange
37 PersonModel-klassen To attributter/property er: name, 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 ADDRESS_PROPERTY_NAME = address ; 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
38 PersonModel-klassen 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);
39 PersonPanel-klassen 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 Tekstfeltene name og address Skjema-aktig layout GridLayout gir tabell-utlegg av subkomponentene
40 PersonPanel-klassen Lytter til property-endringer implements PropertyChangeListener public void propertychange(propertychangeevent evt) {... hvilken property som er endret avgjør hvilken sub-komponent som blir oppdatert
41 Typisk kallsekvens panel : PersonPanel person : PersonModel pcs : PropertyChangeSupport addpropertychangelistener addpropertychangelistener User inputs new name string John setname( John ) firepropertychange propertychange getname Set text field = John
42 JList 3. JList-komponenten viser liste av data-verdier iht. ListModel støtter seleksjon iht. ListSelectionModel (single, single-interval, multiple-interval) visning av enkeltverdi iht. ListCellRenderer public Component getlistcellrenderercomponent
43 Objekt- diagram : ListDataListener modell : ListModel list : JList model : ListSelectionListener renderer renderer : ListCellRenderer selectionmodel : ListSelectionModel
44 JList og ListModel JList er et view mot en eksisterende modell (datastruktur) ListModel er modell-grensesnittet int getsize() Object getelementat(int) JList lytter etter endringer i modell-objektet add/removelistdatalistener(listdatalistener) contentschanged(listdataevent) ListDataEvent-hendelser er utgangspunktet for oppfriskning av skjermbildet
45 JList og ListModel... Sentrale teknikk delegering Hendelse-lytter-pattern XxxEvent-klasse XxxListener-interface add/removexxxlistener Sentrale klasser/objekter ListModel ListDataListener ListDataEvent Sentrale metoder addlistdatalistener og contentschanged getsize og getelementat
46 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
47 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
48 ...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
49 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
50 JList og ListCellRenderer... Sentral teknikk delegering Sentrale klasser/objekter ListCellRenderer Component Sentrale metoder getlistcellrenderer ListDataListener.contentsChanged getsize getelementat
51 6. Modeller kan ha modeller Noen ganger ønsker man å ha en felles datamodell for SWING komponenter som har forskjellig type modeller. De kan følgelig ikke ha samme modell direkte. For hver type komponent må det da lages en mellommodell som videreformidler meldinger ned til den egentlige modellen.
52 SliderSpinnerModelExample Design JSlider og JSpinner instanser Når den ene manipuleres følger de andre etter Konstruksjon basert på MVC og SliderSpinnerModel Example-koden JSlider JSpinner
53 AbstractSpinnerModel public abstract class AbstractSpinnerModel extends Object implements SpinnerModel This class provides the ChangeListener part of the SpinnerModel interface that should be suitable for most concrete SpinnerModel implementations. Subclasses must provide an implementation of the minimum, maximum, and value properties and the getnextvalue and getpreviousvalue methods.
54 SpinnerModel A SpinnerModel has three properties, only the first is read/write. Value The current element of the sequence. nextvalue The following element or null if value is the last element of the sequence. previousvalue The preceeding element or null if value is the first element of the sequence. When the the value property changes, ChangeListeners are notified. SpinnerModel may choose to notify the ChangeListeners under other circumstances.
55 DefaultBoundedRangeModel
56 Forskjellige grensesnitt JSlider JSpinner DefaultBoundedRangeModel getmaximum() getminimum() getvalue() getvalueisadjusting() setmaximum(int n) setminimum(int n) setrangeproperties( ) setvalue(int n) setvalueisadjusting(..) firestatechanged() AbstractSpinnerModel getnextvalue() getpreviousvalue() getvalue() setvalue(object value) firestatechanged()
57 SliderSpinnerModelExample Konfigurere instanser felles IntervalValueModel-instans IntervalValueBoundedRangeModel og IntervalValueSpinnerModel lytter begge på IntervalValueModel-instansen JSlider- og JSpinner-instansene lytter på sine modeller SliderSpinnerModelExample lytter ikke på noe! JSlider-instansen manipuleres modellens verdi endres underliggende og felles modell endres hendelser om endring i felles modell sendes til lytterne
58 IntervalValueSpinnerModel Oversetter kall og hendelser mellom JSpinner og IntervalValueModel get-metoder, f.eks. getvalue set-metoder, f.eks. setvalue Hendelser: firepropertychange propertychange JSpinner IntervalValue SpinnerModel IntervalValue Model IntervalValue BoundedRange Model Tilsvarende for IntervalValueBoundedRangeModel JSlider
59 IntervalValueSpinnerModel getvalue JSpinner getvalue IntervalValue SpinnerModel getvalue IntervalValue Model setvalue JSpinner setvalue IntervalValue SpinnerModel setvalue IntervalValue Model propertychange til firestatechanged JSpinner firestatechanged IntervalValue SpinnerModel propertychange IntervalValue Model
60 Forskjellige grensesnitt JSlider JSpinner DefaultBoundedRangeModel getmaximum() getminimum() getvalue() getvalueisadjusting() setmaximum(int n) setminimum(int n) setrangeproperties( ) setvalue(int n) setvalueisadjusting(..) firestatechanged() IntervalValueModel getmaximum() getminimum() getvalue() setmaximum(int n) setminimum(int n) setvalue(int n) AbstractSpinnerModel getnextvalue() getpreviousvalue() getvalue() setvalue(object value) firestatechanged()
61 slider : JSlider boundedrangemodel : IntervalValueBoundedRangeModel spinner : JSpinner spinnermodel : IntervalValueSpinnerModel intervaluevalue : IntervalValueModel addpropertychangelistener() addchangelistener(changelistener) addpropertychangelistener() addchangelistener(changelistener) Bruker drar slider setvalue(int) setvalue(int) propertychange() statechanged(changeevent) propertychange() statechanged(changeevent)
62 SliderSpinnerModelExample 2: addpropertychangelistener() 5: setvalue(int) slider : JSlider 8: statechanged(changeevent) boundedrangemodel : IntervalValueBoundedRangeModel 1: addpropertychangelistener() 6: setvalue(int) 7: propertychange() 3: addintervalvaluelistener(intervalvaluelistener) intervaluevalue : IntervalValueModel 4: addchangelistener(changelistener) 9: propertychange() spinner : JSpinner spinnermodel : IntervalValueSpinnerModel 10: statechanged(changeevent)
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
DetaljerMVC Model, View, Controller
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
DetaljerEKSAMEN 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
DetaljerMVC 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
DetaljerEksamensoppgave 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
DetaljerEKSAMEN 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
DetaljerEKSAMEN 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.
DetaljerEKSAMEN 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
DetaljerEKSAMEN 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
DetaljerEKSAMEN 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
DetaljerEKSAMEN 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
DetaljerEKSAMEN 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
DetaljerEKSAMEN 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
DetaljerGrafisk 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
DetaljerEKSAMEN 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
DetaljerNORGES 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
DetaljerINF1010 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,
DetaljerEKSAMEN 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
DetaljerLæringsmål for teknikk forelesningene. Når brukergrensesnittet er designet, så skal dere vite hvordan det skal konstrueres
Læringsmål for teknikk forelesningene Når brukergrensesnittet er designet, så skal dere vite hvordan det skal konstrueres Introduksjon til GUIprogrammering Vindu mot (en annen) verden Viser del av en større
DetaljerEKSAMEN 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.
DetaljerKonseptuell 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
DetaljerEksamensoppgave 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
DetaljerOppgave 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
DetaljerNORGES 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
DetaljerNORGES 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
DetaljerGrafiske 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
DetaljerEKSAMEN 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
DetaljerINF 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
DetaljerEKSAMEN 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
Detaljerimport 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
DetaljerINF 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
DetaljerLø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
DetaljerLO191D/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
DetaljerGjennomgang 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
DetaljerAVDELING 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
DetaljerJPanel. 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
DetaljerINF1010 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
DetaljerEKSAMEN 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
DetaljerHØ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
Detaljer29.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
DetaljerAVDELING 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:
DetaljerLC191D/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
DetaljerINF1010. 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
DetaljerObject 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
DetaljerEKSAMEN I FAG TDT MMI Tirsdag 1. juni 2004 Tid: kl
Side 1 av 5 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
DetaljerGjø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å
Detaljer6108 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
DetaljerVi 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
DetaljerUNIVERSITETET 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
Detaljercase 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
DetaljerEks 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å
DetaljerEksamensoppgave 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
DetaljerAMS-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
DetaljerEKSAMEN 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
DetaljerLø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. 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
DetaljerEksamensoppgave 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)
DetaljerNB!!! 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
DetaljerUNIVERSITETET 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< 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
DetaljerMå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
DetaljerKalkulator-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,
DetaljerTDT4100 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
DetaljerINF1010. 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(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
DetaljerUNIVERSITETET 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å
DetaljerINF1010. Grensesnittet Comparable<T>
INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd
DetaljerLø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
DetaljerKapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy
Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider
DetaljerGUI - 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
DetaljerAntall 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
DetaljerGUI («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
DetaljerAlgoritmer 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
DetaljerINF1010 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
DetaljerPost-it spørsmål fra timen (Arv og subklasser)
Post-it spørsmål fra timen 30.01 (Arv og subklasser) Tegning Spørsmål: Skjønte ikke tegningene Hater tegningene. Lær meg å tegne. Mvh frustrert elev. Spørsmål: Datastruktur-tegning, og hvor mye detaljer
DetaljerArray&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
DetaljerEksamen Oppgave a) public class DayTime { public final int hours, minutes;
Eksamen 2012 Del 1 - Innkapsling (20%) Gitt følgende klasse, som representerer et tidspunkt på dagen: public class DayTime { public final int hours, minutes; public DayTime(int hours, int minutes) { this.hours
Detaljerclass 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
DetaljerTittel 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
DetaljerOppsummering. 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
DetaljerINF1010 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
DetaljerArv. 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
DetaljerINF1010, 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
Detaljer1- 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)
DetaljerIN våren 2019 Onsdag 16. januar
IN1010 - våren 2019 Onsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
Detaljer1 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
DetaljerIN våren 2018 Tirsdag 16. januar
IN1010 - våren 2018 Tirsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
DetaljerGUI 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.
DetaljerINF våren 2017
INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer
DetaljerRepitisjonskurs. 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
DetaljerEKSAMEN. 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
DetaljerArray&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
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
Detaljer23.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
DetaljerINF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
DetaljerGUI («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/
DetaljerTDT4100 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
DetaljerEksekveringsrekkefø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
DetaljerBOKMÅ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
DetaljerEksamensoppgave 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
DetaljerIN2010: Algoritmer og Datastrukturer Series 2
Universitetet i Oslo Institutt for Informatikk S.M. Storleer, S. Kittilsen IN2010: Algoritmer og Datastrukturer Series 2 Tema: Grafteori 1 Publisert: 02. 09. 2019 Utvalgte løsningsforslag Oppgave 1 (Fra
Detaljer