Java GUI (AWT og SWING)
|
|
- Klara Larsen
- 7 år siden
- Visninger:
Transkript
1 IN-OBJ-EVU, dag 5 og 6 desember 2002 Stein Gjessing Mer om grafiske grensesnitt og hendelsesorientert programmering Applets = Javaprogrammer i nettleseren Med bidrag fra Jens Kaasbøl og Arne Maus 1 Java GUI (AWT og SWING) Containere (Vinduer, Frame - JFrame) Komponenter - del-vinduer, knapper, tekstfelt, menyer,.. Layout managers - enkel organisering av komponentene i et vindu Grafikk - tegne linjer, kurver, histogrammer - skrive tekst Hendelses-håndtering, ta i mot: - museklikk, musebevegelser - flytting, endring av vinduet - tasting (tasteklikk) Bilde, lyd, animasjon, film, mm. - inkludere bilder osv. med ulikt format 2
2 Hendelser (Event) Alt det brukeren gjør med: - musa, både bevegelse og museknappene - tastaturet oppfanges av operativsystemet (Windows, Unix) Hver slik hendelse blir lagt i en kø som en melding med data om hva og hvor det skjedde (en kø pr. program på skjermen) Programmet (Javas kjøresystem) mottar meldingen, ser hvilken type den er, og sender den til det objektet (dvs kaller en bestemt metode i dette objektet (f.eks. actionperformed)) som har bedt om å få slike meldinger De meldingene som ingen ønsker tilsendt, kastes 3 Typer av hendelser museklikk musebevegelse trykke en tast ned slippe en tast trekke i ramma til et vindu for å endre størrelsen minimere/maksimere et vindu musa beveges inn/ut av et vindu... Finkornet eller grovkornet behandling Engelsk: Fine grained vs. course grained 4
3 Finkornet eller grovkornet Ofte kan vi velge å motta samme hendelelse (f. eks. inntasting) -Finmasket - jobbe med hver bevegelse av tastene (f.eks. trykke ned / slippe opp hver tast) -KeyEvent -Grovmasket jobbe med sammensatte hendelser (f.eks. brukeren er ferdig med å skrive en hel linje og trykker CR) -ActionEvent 5 Listener og Adapter Når vi ønsker å fange én bestemt type event, har vi to muligheter: - implementere et grensesnitt (interface) - f.eks.... implements WindowListner - lage en subklasse av en klasse - f.eks.... extends WindowAdapter Hvorfor eksisterer to muligheter: - Der hvor det er mer enn én metode i grensesnittet, har AWT også laget en Adapter -klasse som implementerer alle metodene i grensesnittet (uten å legge noe kode i metodene) - Bruker vi subklasse av en Adapter, betyr det at vi slipper med bare å implementere de metodene vi er interessert i dvs. de programmet vårt bruker (de andre forblir tomme) Adaptere ble laget i Java 1.1 etter at noen hadde skjønt at det ble for tungvindt å alltid måtte implementere alle metodene i et grensesnittet (interface) 6
4 Noen eksempler Hendelse Listner / Adapter type komponent ActionEvent ActionListner/ActionAdapter (bare én JButton, List, MenuItem, metode - actionperformed) JTextField MouseEvent MouseListener MouseAdapter (mange metoder) MouseMotionListener MouseMotionAdapter Component, JComponent, JButton, Applet, JTextField, JScollPane osv. KeyEvent WindowEvent KeyListener KeyAdapter keypressed(..) keyreleased(..) keytyped(..) Alle typer Component: JTextField, JPanel, JComboBox, osv. JFrame, JDialog, WindowListener JFileChooser WindowAdapter mange metoder - se senere eksempel 7 Vi husker: Lukke et vindu f.addwindowlistener (new WindowAdapter ( ) { public void windowclosing (WindowEvent e) { System.exit(0); ); 1) Vi lager et objekt av (en anonym subklasse til) Adapter-klassen: new WindowAdapter 2) I denne lager vi vår versjon av metoden: windowclosing(..) (de andre metodene uforandret) 3) Vi sier fra (til kjøresystemet java ) med addwindowlistener (..) at dette nye objektet skal få vinduets lukke-hendelsen tilsendt 4) Når noen trykker på øverst i høyre hjørne kaller så kjøresystemet windowclosing i det utpekte objektet av en subklasse til WindowAdapter med en peker til et WindowEvent objekt som parameter 5) I denne metoden (windowclosing) skriver vi så den koden vi vil 8
5 Eks: Hva kan vi gjøre med et vindu - interface WindowListener Metoder i grensesnittet WindowListener (som vi da må lage egne varianter av for ALLE metodene) windowactivated(windowevent); Invoked when a window is activated. windowclosed(windowevent); Invoked when a window has been closed. windowdeactivated(windowevent); Invoked when a window is de-activated windowclosing(windowevent); Invoked when a window is in the process of being closed windowdeiconified(windowevent); Invoked when a window is de-iconified. windowiconified(windowevent); Invoked when a window is iconified. windowopened(windowevent); Invoked when a window has been opened. 9 Samme metoder i WindowAdapter Samme metoder som i class WindowListener Men nå behøver vi bare lage egne varianter av de vi selv skal bruke windowactivated(windowevent) { windowclosed(windowevent) { windowclosing(windowevent) { windowdeactivated(windowevent) { windowdeiconified(windowevent) { windowiconified(windowevent) { windowopened(windowevent) { Disse metodene er allerede skrevet som TOMME metoder (dvs. koden gjør ingen ting) - vi redefinerer bare de vi skal bruke i en subklasse vi lager av class WindowAdapter 10
6 Utvidet trafikklys (Traffic1) Vi skal velge farge i rullegardinmenyen, og det tallet som skrives i tekstboksen skal skrives ut ved den fargen 11 Nå velger vi Yellow : Red Yellow Green Walk klikk + Taste 77 + CR i tekst-feltet: JComboBox side 751 i Eckel 12
7 Tillegg / endringer blir da Ny valg-meny nederst til venstre Tekster til høyre for trafikklyset Ny tekst/tall-boks nede 13 import java.awt.*; import java.awt.event.*; import javax.swing.*; Fullsetendig program public class Traffic1 extends JFrame implements ActionListener, ItemListener { private LightsCanvas lights; private JTextField duration; private CJComboBox colours; private JButton walkbutton; private JButton closebutton; public Traffic1( ) { JPanel title = new JPanel (); title.add(new JLabel("Savanna Traffic Light Simulation")); getcontentpane().add("north", title); lights = new LightsCanvas(); /denne klassen er definert senere getcontentpane(). add("center", lights); Tittelen i nord og lysene i sentrum 14
8 JPanel buttons = new JPanel(); colours = new JComboBox (); colours.additem("red"); colours.additem("green"); buttons.add(colours); colours.additemlistener(this); colours.seteditable(false); colours.additem("yellow"); colours.additem("walk"); Rullegardinmenyen som kommer frem når vi skal velge en farge Sier fra hvilket objekt som inneholder metoden itemstatechanged buttons.add(new JLabel("Duration")); Tekstfelt som kan editeres duration = new JTextField("", 3); duration.seteditable(true); duration.addactionlistener(this); buttons.add(duration); walkbutton = new JButton("Walk"); // no action yet Dette objektet buttons.add(walkbutton); Sier hvilket skal lytte både objektet som closebutton = new JButton("Close"); på tekstfeltet lytter på disse closebutton.addactionlistener(this); og på close - buttons.add(closebutton); knappene knappen med getcontentpane(). add("south", buttons); actionperformed // slutt konstruktør Putt dette ned på sydsiden 15 // actionperformed tar i mot både trykk på close knappen // og <CR> i tekstefeltet public void actionperformed(actionevent e) { if (e.getsource() == closebutton) { setvisible(false); dispose(); System.exit (0); Her stopper programmet else if (e.getsource() == duration) { message[light] = duration.gettext(); lights.repaint(); Her forandres lys-lengden på gjeldende lys ( light -variablen forteller hva som er gjeldende lys (se neste side)) e.getsource gir en peker til knappen/feltet som brukeren trykket på eller tastet <CR> i 16
9 public void itemstatechanged(itemevent e) { if (e.getitemselectable()==colours) { String s = (String) e.getitem(); if (s.equals("red")) {light = 0; else if (s.equals("yellow")) {light = 1; else if (s.equals("green")) {light = 2; else if (s.equals("walk")) {light = 3; public static void main(string[] args) { JFrame f = new Traffic1(); f.settitle("traffic Lights Version 1"); f.setsize(350, 240); f.setvisible(true); f.addwindowlistener(new WindowAdapter () { public void windowclosing(windowevent e) { System.exit(0); ); private int light = 0; String [ ] message={"default","default", "default","default"; Her behandles forandringer av rullegardinen Her settes hvilket lys som gjelder Lag et vindu Lag et objekt og en metode som lytter på x 17 class LightsCanvas extends JComponent { // Dette er en indre klasse i Traffic1 public void paint(graphics g) { g.drawoval(87, 10, 30, 68); g.setcolor(color.red); g.filloval(95, 15, 15, 15); g.setcolor(color.yellow); g.filloval(95, 35, 15, 15); g.setcolor(color.green); g.filloval(95, 55, 15, 15); // walk light is also green: g.filloval(95, 85, 15, 15); g.setcolor(color.black); g.drawstring("red", 15, 28); g.drawstring("yellow", 15, 48); g.drawstring("green", 15, 68); g.drawstring("walk", 15, 98); g.drawstring(message[0], 135,28); g.drawstring(message[1], 135, 48); g.drawstring(message[2], 135, 68); g.setcolor(color.black); g.drawstring(message[3], 135, 98); // slutt paint // slutt class lightscanvas //slutt class Traffic1 paint og paintcomponent blir kalt på samme måte, dvs. automatisk hver gang vinduet blir tegnet ut (på nytt) 18
10 Om å lage grafiske grensesnitt - Generelle regler Man bestemmer seg for hvordan skjermbildet (ett eller flere) skal se ut - typer av interaksjon og logikk (hvilke felter må fylles ut - og evt. rekkefølge) - krav til logikk i bruk av bildet huskes av lokale variable i subklassen av Frame Skal man ha fin grafikk på skjermbildet, buker man også Graphics - lag metode paint(graphics g) og fyll g med tegninger. Se også paintcomponent (side 768 i Eckel) og klassen Graphics2D Hvordan skjembilde organiseres ordnes med å evt. skifte LayoutManager Vi analyserer hvike typer Event vi vil behandle - Lager subklasser av de relevante Adapter ne (evt. implementerer grensesnittene, Listener ne) - skriver innmaten i de metodene som passer problemet vårt 19 Litt mer vindus pragmatikk: Krav til hvordan vinduet brukes JavaGently er ikke helt klar på vindus tilstander Meningen er derimot meget bra: a) Av og til setter vi krav til: - rekkefølgen av bruk av knapper, felter ol. - hvor mye som skal være utfylt i et vindu før vi aksepterer det fra bruker b) Da legger vi inn i vindusklassen vår (subklasse av JFrame) - variable, f.eks boolean, int osv. som holder rede på TILSTANDEN til vinduet: - hva har skjedd - bruk f.eks. seteditable(false); - er alle viktige felter utfylt? c) Skjer gal bruk av vinduet, bør vi sette opp et feil-vindu som forklarer og ber om mer/riktig utfylling 20
11 Varevekt-eksempelet Representerer en vekt Krav til bruk: - Først trykk WEIGH - så vilkårlig rekkefølge: - trykk vareslag - klikk i MASS-feltet + tast inn tall + CR - Sist: trykk PRINT CLOSE - lukker vinduet PRINT - gir total pris for varen i COST- feltet og skriver også ut prisen på System.out 21 Trykket: -WEIGH - Garlic - klikket CR i MASS -PRINT bruk C:\inobj\javaprog\swing> java Till 98.0kg G12.0 = G
12 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Till extends JFrame implements ActionListener { vekt-felt og totalpris-felt private JTextField weighfield, totalfield; private JButton[ ] itembuttons; private JButton weighbutton, printbutton, closebutton; private double total; private double kg; private boolean chosen = false; private boolean weighed = false; private int select = 1; En tabell av knapper for alle vareslagene pluss vekt, skriv og lukke -knapper public Till() { super("savanna Grocers"); getcontentpane().setlayout(new BorderLayout()); JPanel p = new JPanel(); p.setlayout(new FlowLayout()); totalfield = new JTextField(6); totalfield.seteditable(false); p.add(new JLabel("COST")); p.add(totalfield); getcontentpane().add("north", p); Totalpris-felt med ledetekst i nord p = new JPanel(); p.setlayout(new GridLayout(5, 3)); itembuttons = new JButton[items.length]; for (int i = 0; i < items.length; i++) { itembuttons[i] = new Button(items[i]); itembuttons[i].addactionlistener(this); p.add(itembuttons[i]); Varene kommer fra tabellen items weighbutton = new JButton("WEIGH"); weighbutton.addactionlistener(this); printbutton = new JButton("PRINT"); printbutton.addactionlistener(this); closebutton = new JButton("CLOSE"); closebutton.addactionlistener(this); p.add(weighbutton); p.add(printbutton); p.add(closebutton); getcontentpane().add("center", p); 24
13 p = new JPanel(); p.setlayout(new FlowLayout()); De siste knappene weighfield = new JTextField(4); legges inn på weighfield.seteditable(false); sydsiden weighfield.addactionlistener(this); p.add(weighfield); p.add(new JLabel("MASS")); p.add(new JLabel("Type return after the amount")); getcontentpane().add("south", p); pack(); lager passende vindusstørrelse private String[] items = { "Apples", "Pears", "Oranges", "Potatoes", "Lemons", "Squash", "Onions", "Garlic", "Avocados", "", "", "" ; private double[] unitcosts = { 6.00, 5.00, 7.00, 3.00, 10.00, 4.00, 4.00, 12.00, 15.00, 0, 0, 0 ; 25 public void actionperformed(actionevent e) { Object source = e.getsource(); if (source == closebutton) { System.exit(0); else if (source == printbutton) { printitems(); else if (source == weighbutton) { resetweighfield(); else if (source == weighfield) { readweighfield(); else selectitem(e.getactioncommand()); hit kommer vi hver gang noen har trykket på en knapp (eller tastet retur i et tekstfelt) Navnet på knappen (Apples, Pears,...) Vi kunne også laget egne objekter til alle knappenes actionperformed 26
14 Disse tre metodene kalles fra actionperformed på forrige side public void resetweighfield() { weighfield.settext(""); weighfield.seteditable(true); public void readweighfield() { if (weighfield.iseditable()) { weighfield.seteditable(false); weighfield.selectall(); kg = (double)integer.valueof(weighfield.gettext().trim()).intvalue(); weighed = true; skriv ut det som ble valgt (select) public void printitems() { if (weighed && chosen) { select total = kg*unitcosts[select]; totalfield.settext("g "+total); System.out.println(kg+"kg G"+ unitcosts[select]+" = G"+total); kg = 0; weighed = false; chosen = false; total = 0; weighfield.select(0,0); 27 selectitem kalles også fra actionperformed public void selectitem(string item) { select = 0; while (! item.equals(items[select]) ) select++; chosen = true; public static void main(string[] args) { Frame f = new Till( ); f.setvisible(true); select selectitem sjekker hva som blir kjøpt f.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); ); 28
15 Applets Applets er små Java-programmer som lastes ned fra en Web-server som del av en html -side. De viser seg inne i rammen til web-leseren (Netscape, Opera, Explorer) Alle Vanlige programmer som bruker AWT, kan lett omformes til applets Klient med bruker, laster ned Web-side (inkl Applet-en) Web-tjener med.html side og Applet 29 Applets Applets som bruker Swing er subklasser av JApplet De fleste web-lesere er ikke klare til å laste ned Java 2s JApplets uten videre Se side 696 i Bruce Eckel Vi vil derfor konsentrere oss om Applets i dette kurset Hittil har programmene våre vært subklasser av JFrame Applet-programmer er i steden subklasser av Applet 30
16 Klassehierarki for GUI med Applet Component A A Container Canvas Button Label Window Panel Scrollpane JComponenet Frame Dialog Applet JLabel JPanel JFrame FileDialog JDialog MittProg JApplet MinApplet Color Event Graphics Font MinJApplet LayoutManager Grid Flow Border 31 Hovedregler om hvordan man omformer et program til en Applet? 1. Ikke bruk linjebasert inn/ut-setninger F.eks. skriv om: System.out.println( Hei på deg, Kari ); til g.drawstring(( Hei på deg, Kari ); 2. Fjern all stopping av programmet som System.exit(0);. Web-leseren stopper Appleten. 3. Applet har FlowLayout (mens vanlige programmer har BorderLayout). Sett ny LayoutManager hvis nødvendig. 4. Bytt ut JFrame med Applet som superklasse. public class MineGreier extends Applet { Bytt ut konstruktor-navnet MineGreier(..){... med: public void init (..) { fjern hele main (som bare opprettet vinduet) 7. Lag en.html fil som refererer Applet en din 8. Test Applet en ved å kjøre den i en appletviewer eller i en web-leser 32
17 Eksempel: Virus-advarsel import java.awt.*; import java.awt.event.*; public class GraphicWarning extends JFrame { 4 3 static private final int line = 15; static private final int letter = 8; public GraphicWarning(String title) { super(title); setbackground(color.cyan); 5 public void paint(graphics g) { g.drawrect(2*letter, 2*line, 30*letter, 6*line); g.drawstring("w A R N I N G", 9*letter, 4*line); g.drawstring("possible virus detected", 4*letter, 5*line); g.drawstring("reboot and run virus", 5*letter, 6*line); g.drawstring("remover software", 7*letter, 7*line); public static void main(string[] args) { JFrame f = new GraphicWarning("Draw Warning"); f.setsize(40*letter,10*line); f.setvisible(true); f.addwindowlistener(new WindowAdapter () { public void windowclosing(windowevent e) { System.exit(0); ); html -fil: <HTML> <BODY> <APPLET CODE="AppWarning.class" WIDTH=300 HEIGHT=200> </APPLET> </BODY> </HTML> 7 import java.awt.*; import java.applet.*; import java.awt.event.*; 3 4 public class AppWarning extends Applet { static private final int line = 15; static private final int letter = 8; public void init() { 5 kjøring: 8 setbackground(color.cyan); 2 snidil[11] appletviewer AppWarning.html 6 public void paint(graphics g) { g.drawrect(2*letter, 2*line, 30*letter, 6*line); g.drawstring("w A R N I N G", 9*letter, 4*line); g.drawstring("possible virus detected", 4*letter, 5*line); g.drawstring("reboot and run virus", 5*letter, 6*line); 1 g.drawstring("remover software", 7*letter, 7*line); 34
18 Startet i Netscape og Explorer 36
19 Applet-metoder destroy() Called by the browser or applet viewer to inform this applet that it is being reclaimed and that it should destroy any resources that it has allocated. getappletcontext() Determines this applet's context, which allows the applet to query and affect the environment in which it runs. getappletinfo() Returns information about this applet. getaudioclip(url) Returns the AudioClip object specified by the URL argument. getaudioclip(url, String) Returns the AudioClip object specified by the URL and name arguments. getcodebase() Gets the base URL. Her kommer koden fra, getdocumentbase() og her kommer web-siden fra, Gets the document URL. getimage(url) så kanskje kankje det er mer her Returns an Image object that can then be painted on the screen. getimage(url, String) Returns an Image object that can then be painted on the screen. 37 getlocale( ) Gets the Locale for the applet, if it has been set. getparameter(string) Returns the value of the named parameter in the HTML tag. getparameterinfo( ) Returns information about the parameters that are understood by this applet. init( ) Called by the browser or applet viewer to inform this applet that it has been loaded into the system. isactive( ) Determines if this applet is active. play(url) Plays the audio clip at the specified absolute URL. play(url, String) Plays the audio clip given the URL and a specifier that is relative to it. resize(dimension) Requests that this applet be resized. resize(int, int) Requests that this applet be resized. setstub(appletstub) Sets this applet's stub. showstatus(string) Requests that the argument string be displayed in the "status window". start( ) Called by the browser or applet viewer to inform this applet that it should start its execution. stop( ) Called by the browser or applet viewer to inform this applet that it should stop its execution. 38
20 Mer om Applet Begrensninger i hva den har lov til å gjøre Parametre til en Applet Lese fil på server fra Applet Bilder og lyd i Applet Data til - applet (på klientmaskinen) - til serveren (skrive på fil) Det er jo noe av det som har gjort Java så populært 39 Begrensninger i hva har du lov til å gjøre i Applet Sikkerhetsnivåer - Applikasjon (ikke applet): - Kan gjøre alt, også fjerne filer - Egen applet i Viewer : - nesten alt (bare ikke fjerne filer) - Egen applet i internettleser - ikke aksessere lokale filer - Applet fra annen maskin i din internettleser - bare lov til å ta kontakt tilbake til server (som hadde appleten) og lage vinduer Sikkerheten kan skrues gradvis av i Java 2 40
21 Parametre til en Applet Man kan legg ut parametre på html-siden 41 import java.awt.*; import java.applet.*; import java.awt.event.*; public class AppMessage extends Applet { <HTML> <BODY> <APPLET CODE="AppMessage.class" WIDTH=300 HEIGHT=200> <PARAM NAME="Numparam" VALUE="3"> <PARAM NAME="Mess-1" VALUE="HUSK:"> <PARAM NAME="Mess-2" VALUE="Puss tennene"> <PARAM NAME="Mess-3" VALUE=" hver dag!"> </APPLET> </BODY> </HTML> static private final int line = 15; static private final int letter = 8; static private int antall; public void init(){ setbackground(color.yellow); antall = Integer.parseInt(getParameter("Numparam")); public void paint(graphics g) { for (int i = 1; i <= antall; i++) g.drawstring(getparameter("mess-" + i), 9*letter, (4+i)*line); 42
22 The Ultimate Apple : Bilder og lyd i Applet Vi skal lage en applet som tegner et lite bilde på en lite del av tegneflaten Når musa flyttes, skal bildet av og til flyttes til en annen del av tegneflaten Dette bildet skal vi prøve å klikke på med musa (antall treff og bom registreres) Hvis vi treffer skal det spilles én type lyd, bommer vi skal det spilles en annen lyd Av dette skal vi lære : - Hente bilde til Applet og tegne det ulike steder - Motta to typer begivenheter fra musa - bevegelse - klikking og hvor det klikkes - Spille lyd i Applet 43 html fil + applet <HTML> <BODY> <APPLET CODE="CatchOBJ.class" WIDTH=600 HEIGHT=400> </APPLET> </BODY> </HTML> DOS appletviewer Explorer (Windows 98) 44
23 Fullstendig program (52 linjer) import java.awt.*; import java.applet.*; import java.awt.event.*; public class CatchOBJ extends Applet { int mx, my, limitx, limity ; int wins; int boardsize; Image inobj; Origo (øverste venstre hjørne), samt høyde og bredde på bildet som skal treffes public void init() { wins = 0; boardsize = getsize().width - 1; inobj = getimage(getcodebase(),"logo.gif"); this.addmouselistener (new MousePressHandler()); this.addmousemotionlistener (new MouseMotionHandler()); Henter bildet (bare en gang) fra samme sted som Java-koden ligger 45 class MousePressHandler extends MouseAdapter { public void mousepressed (MouseEvent e) { int x = e.getx(); int y = e.gety(); requestfocus(); if (mx < x && x < mx+limitx && Innenfor? my < y && y < my+limity) { wins++; getappletcontext().showstatus("caught it! Total " + wins); play(getcodebase(), "fugl.au"); else { getappletcontext().showstatus("missed again."); play(getcodebase(), "gong.au"); repaint(); Henter lyden (hver gang) på samme sted som Java-koden ligger 46
24 public class MouseMotionHandler extends MouseMotionAdapter { public void mousemoved(mouseevent e) { if (e.getx() % 3 == 0 && e.gety() % 3 == 0) repaint(); public void paint(graphics g) { // wait till the image is in before getting the // size. Can't put these statements in init limitx = inobj.getwidth(this); limity = inobj.getheight(this); int change = boardsize-limitx; Tegner opp å nytt for ca. hver niende museavbrudd // draw a boundary g.drawrect(0, 0, boardsize, boardsize); mx = (int)(math.random()*1000) % change; my = (int)(math.random()*1000) % change; g.drawimage(inobj, mx, my, this); // slutt class Tegner bildet Beregn nye koordinater på bildet og flytt det 47 Filer i systemet : Fang bildet CatchOBJ.java CatchOBJ.class CatchOBJ$mouseMotionHandler.class CatchOBJ$mousePressHandler.class CatchOBJ.html fugl.au gong.au logo.gif 48
25 Lærdom: Å kjøre en applet 1) Applets og.html-sider kan kompileres én gang og kjøres mange steder 2) Utseende kan avvike litt (Standard font kan ha ulik utseende og størrelse. Dette er bedre i Swing, JApplet) 3) Mellomliggende programvare (f.eks. Xvision, som er X- server på PC med kontakt til Unix-server) kan stoppe funksjonalitet (som lyden) 49
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
DetaljerKap 11. Mer om grafiske grensesnitt og hendelsesorientert programmering
IN-OO1-EVU, dag 5 og 6 13 og 14 desember 1999 Stein Gjessing Kap 11. Mer om grafiske grensesnitt og hendelsesorientert programmering Kap 12. Applets Med bidrag fra Jens Kaasbøl og Arne Maus AWT - full
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
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
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
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
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,
DetaljerUke 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
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
DetaljerInf 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
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
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
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
DetaljerVi 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
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
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:
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
DetaljerInf mars 2010 GUI del 2
Inf 1010 11. mars 2010 GUI del 2 Stein Gjessing Ins$tu' for Informa$kk Universitetet i Oslo 1 GUI (Graphical User Interface) programmering Tidligere Hvordan få laget et vindu på skjermen Hvordan legge
DetaljerKapittel 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
DetaljerInf Våren 2008 Tråder del 1 Parallelle programmer og felles data. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo
Inf 1010 - Våren 2008 Tråder del 1 Parallelle programmer og felles data Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer?
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
DetaljerINF Våren Tråder. del 1. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk
INF1010 - Våren 2014 Tråder del 1 Stein Gjessing,, Universitetet i Oslo 1 Maskin med 8 kjerner 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer? Hvordan kan de'e skje på en kjerne/cpu/prosessor?
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
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
DetaljerOversikt. Inf Våren Parallelle programmer og felles data. Hva er parallelle programmer I I. Hva er parallelle programmer?
Oversikt Inf 1010 - Våren 2009 Tråder del 1 Parallelle programmer og felles data Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Hva er parallelle programmer? Hvorfor parallelle programmer?
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
DetaljerStein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo
INF1010 - Våren 2012 Tråder del 1 Parallelle programmer og felles data Stein Gjessing,, Universitetet i Oslo 1 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer? Hvordan kan de'e skje
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
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
DetaljerHva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }
Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =
DetaljerOm Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering
4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering I dag (så langt
Detaljer4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I. Stein Gjessing Inst for Informatikk Univ.
4. mars 2008 Grafisk brukergrensesnitt med Swing og awt Litt Modell Utsyn - Kontroll Del I Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering I dag (så langt
DetaljerEt 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
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
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
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
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/
DetaljerOm Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det: To måter. GUI (Graphical User Interface)-programmering. del 1. Litt Modell Utsyn - Kontroll
INF1010-3. mars 2009 Grafisk brukergrensesnitt med Swing og awt - del 1 Litt Modell Utsyn - Kontroll Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering I dag
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-2007 GUI - del 2
GUI (Graphical User Iterface)-programmerig If 1010-2007 GUI - del 2 Stei Gjessig Ist for Iformatikk Uiv. i Oslo Tidligere Hvorda få laget et vidu på skjerme Grafikk (tegig i viduet) Hvorda legge ulike
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
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
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
DetaljerINF 1010, vår 2005 Løsningsforslag uke 10
INF 1010, vår 2005 Løsningsforslag uke 10 Anders Brunland 1. april 2005 Oppgave 1 Oppgave 15.4 i i Rett på Java. Løsningsforslag De forskjellige komponentene settes i metoden initcomponents. Her settes
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
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
DetaljerIN1010 våren januar. Objektorientering i Java
IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som
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
DetaljerINF1010 våren januar. Objektorientering i Java
INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort
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
DetaljerKodetime for Nordstrand barneskole
Kodetime for Nordstrand barneskole av Veronika Heimsbakk og Lars Erik Realfsen 1 Hva er Processing? Processing er et programmeringsspråk som er gratis, og tilgjengelig for alle! Man kan programmere i Processing
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
DetaljerKonstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 4. juni 2015 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider. Vedlegg:
DetaljerFra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
Detaljer(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
DetaljerKapittel 13: Grafiske brukergrensesnitt. Java som første programmeringsspråk
Kapittel 13: Grafiske brukergrensesnitt Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag, 2003. ISBN 82-02-23274-0
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.
DetaljerKapittel 13: Grafiske brukergrensesnitt. Java som første programmeringsspråk
Kapittel 13: Grafiske brukergrensesnitt Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag, 2003. ISBN 82-02-23274-0
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
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å
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
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.
DetaljerOblig 4Hybelhus litt mer tips enn i oppgaven
Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,
DetaljerIN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
DetaljerObligatorisk oppgave 4: Lege/Resept
Obligatorisk oppgave 4: Lege/Resept INF1010 Frist: mandag 27. mars 2017 kl. 12:00 Versjon 1.0 (111c894 ) Innhold 1 Innledning 1 1.1 Begreper................................ 2 2 Pasienter 2 3 Leger og lister
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerArgumenter fra kommandolinjen
Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene
DetaljerLa oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet
K A P I T T E L 18 Tråder N år et program kjøres, utføres programsetningene i en bestemt rekkefølge. En tråd er det samme som denne programflyten, og i dette kapitlet skal vi se på hvordan vi starter og
DetaljerGraphics. Grafikk. Praktisk sett: Koordinatsystemet. kodeeksempel
Grafikk Grafikk er den framstillingen vi gir objekter på en todimensjonal flate. Det er en regnemessig tung operasjon å regne ut hvordan man skal framstille to og tre dimensjonale objekt på en todimensjonal
DetaljerKlask-en-Muldvarp. Introduksjon. Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (
Klask-en-Muldvarp Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (http://appinventor.mit.edu/explore/ai2/molemash.html) Oversatt av: Hanne Johnsen Kurs: Appinventor Tema: App, Blokkbasert
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
DetaljerLøsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse
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
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
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
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å
Detaljer1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 26. februar 2014 1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Vi tar utgangspunkt i dette programmet for
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)
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.
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
DetaljerSocket og ServerSocket
Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket
DetaljerIN1010 våren 2018 Tirsdag 15. mai. Repetisjon av subklasser og tråder. Stein Gjessing Institutt for informatikk Universitetet i Oslo
IN1010 våren 2018 Tirsdag 15. mai Repetisjon av subklasser og tråder Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Klassehierarki: Personbil Bil Klasser - Subklasser class Bil {
DetaljerStein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo
Inf 1010 - Våren 2011 Tråder del 1 Parallelle programmer og felles data Stein Gjessing,, Universitetet i Oslo 1 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer? Hvordan kan de'e
DetaljerINF1010 våren 2008 Uke 4, 22. januar Arv og subklasser
Emneoversikt subklasser INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Stein Gjessing Institutt for informatikk Mange flere eksempler på fellesøvelsene og neste forelesning 1 Generalisering - spesialisering
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å
DetaljerEksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %
Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til
DetaljerStein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo
Inf 1010 Våren 2010 Tråder del 1 Parallelle programmer og felles data Stein Gjessing,, Universitetet i Oslo 1 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer? Hvordan kan de'e skje
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
DetaljerForelesning inf Java 1
Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems
DetaljerStein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk
INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:
Detaljer1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje
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.
DetaljerInnføring i bruk av CGI4VB
Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen
Detaljer1. NetBeans IDE: Lage en enkel mobilapplikasjon
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering
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
DetaljerInnhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49
Innhold Forord...5 1 Det første programmet...15 1.1 Å kommunisere med en datamaskin 16 1.2 Programmeringsspråk 17 1.3 Et program som skriver på skjermen 18 1.4 Kompilering og kjøring 19 1.5 Kommentarer
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
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å
Detaljer