Konstruktion af grafiske brugergrænseflader (GUI'er)

Størrelse: px
Starte visningen fra side:

Download "Konstruktion af grafiske brugergrænseflader (GUI'er)"

Transkript

1 Forelæsning Uge 13 Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer, tekster, osv.) Hvordan reagerer de på input (via mus og tastatur)? Hvordan placeres de i forhold til hinanden (layout)? Anonyme indre klasser Sprogkonstruktion, der er nyttig i forbindelse med visse GUI events Afleveringsopgave: Computerspil 3 Brug af nedarvning og dynamic method lookup Deltag i træningen i mundtlig præsentation Den er uhyre vigtig for jeres succes ved mundtlig eksamen Eneste gang under jeres studier I får systematisk træning heri Træning gør mester de timer I bruger på det, er godt givet ud Se videoerne om den "perfekte" eksamenspræstation og hør jeres medstuderendes præsentationer det lærer I også af

2 AWT og Swing Java indeholder tre forskellige biblioteker til konstruktion af GUI'er Ældste (1995): AWT (Abstract Window Toolkit) Mellemste (2008): Swing (langt bedre på mange punkter) Nyeste (2015): JavaFX Vi vil koncentrere os om brugen af Swing Mange Swing klasser er helt nye Andre erstatter AWT klasser Endelig bruger Swing også klasser fra AWT (uden at ændre dem) Når der er ækvivalente klasser i AWT og Swing, tilføjer Swing et J foran navnet Button, Frame og Menu er klasser i AWT JButton, JFrame og JMenu er klasser i Swing

3 Vinduer (frames) Lad os starte med at se, hvordan vi kan opbygge et vindue med nedenstående indhold Dette gøres ved hjælp af en frame (ramme) Det er operativsystemet, der bestemmer, hvordan vinduet vises på skærmen (dvs. om den er øverst, delvist skjult af andre vinduer, eller helt gemt)

4 Terminologi for frames (vinduer) Knapper til kontrol af vinduet (minimer, maksimer, luk) Udseendet af kontrolknapperne afhænger af operativsystemet Apple Titel Windows Titelbar Menubar med 3 menuer Label I am a label Content pane content indhold pane ramme/rude Af typen Container Kan indeholde forskellige GUI elementer (på tilsvarende vis som en arrayliste indeholder elementer) I dette tilfælde indeholder den kun ét element, som er en label For GUI'er bruger jeg engelsk terminologi Dvs. content pane (i stedet for indholdspanel). Kun danske betegnelser, hvor oversættelsen er helt oplagt (f.eks. vindue, menu og knap) 4

5 Java kode for simpel ramme (frame) Importer relevante pakker fra AWT og Swing (bemærk x'et) Feltvariabel af type JFrame Konstruktør Initialisering af feltvariablen Erklæring af lokal variabel af type Container Skab en label og tilføj den til contentpane Rammen pakkes (størrelser og layout) og gøres synlig import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ImageViewer { private JFrame frame; public ImageViewer() { makeframe(); private void makeframe() { I am a label Privat metode Indeholder al kode til konstruktion af rammen Eksempel på god "cohesion" frame = new JFrame("ImageViewer"); Container contentpane = frame.getcontentpane(); JLabel label = new JLabel("I am a label"); contentpane.add(label); frame.pack(); frame.setvisible(true); 5

6 Menuer private void makeframe() { frame = new JFrame("ImageViewer"); makemenubar(frame); Privat metode Indeholder al kode til konstruktion af menubaren Har rammen (frame) som parameter Open Quit I am a label Menubar Menu MenuItem Skab en menubar og lad den være menubar for rammen Skab en menu med navnet File og tilføj den til menubaren Skab en menuindgang med navnet Open og tilføj den til File menuen Skab en menuindgang med navnet Quit og tilføj den til File menuen private void makemenubar(jframe frame) { JMenuBar menubar = new JMenuBar(); frame.setjmenubar(menubar); // Create the File menu JMenu filemenu = new JMenu("File"); menubar.add(filemenu); JMenuItem openitem = new JMenuItem("Open"); filemenu.add(openitem); JMenuItem quititem = new JMenuItem("Quit"); filemenu.add(quititem); 6

7 Håndtering af events (actions) Brugerne aktiverer objekterne i GUI'en ved hjælp af mus og tastatur Man kan trykke på knapper og menuindgange, indtaste tekst i tekstbokse, osv. Når et GUI objekt aktiveres af brugeren genereres et ActionEvent Dette sendes til alle de objekter, som abonnerer på ActionEvents fra det pågældende GUI objekt Man registrerer sig som abonnent via addactionlistener metoden Parameteren fortæller, hvad der skal gøres, når et ActionEvent modtages I dette tilfælde kaldes den private metode quit private void makemenubar(jframe frame) { JMenuItem quititem = new JMenuItem("Quit"); filemenu.add(quititem); quititem.addactionlistener( e -> quit()); Vi kan bruge en lambda som parameterværdi, fordi ActionListener er et funktionelt interface private void quit() { System.exit(0); exit metoden i System klassen standser udførelsen af programmet Parameterværdien 0 indikerer, at det er en normal terminering 7

8 Håndtering af billeder Vi introducerer tre nye klasser OFImage repræsenterer et billede OFIMage fastlægger vores interne billedformat (OF "Objects First") Bruger et 2-dimensionalt array, hvor hver element angiver en farve fra klassen Color ImageFileManger er grænsefladen til filsystemet Indeholder klassemetoder til at konvertere billeder på en fil til et OFIMage objekt og tilbage igen samt en metode, hvor brugeren via en dialogboks kan vælge den fil, hvis billede skal vises i vinduet ImagePanel implementerer en Swing-komponent Den er en subklasse af JComponent Indeholder en metode setimage, hvor parameterværdien er det OFImage objekt, der skal vises i vinduet (rammen) 8

9 openfile metoden I makeframe metoden skabes et ImagePanel objekt Objektet assignes til feltvariablen imagepanel og tilføjes til contentpane private void makeframe() { imagepanel = new ImagePanel(); contentpane.add(imagepanel); Kald af klassemetode i ImageFileManager Åbner en dialogboks, hvori brugeren vælger en fil Filens billede returneres som et OFImage objekt Når brugeren vælger Open i File menuen kaldes openfile metoden openitem.addactionlistener( e -> openfile()); OFImage objektet tilknyttes imagepanel objektet Rammen pakkes, idet imagepanel objektet har skiftet indhold og dermed størrelse private void openfile() { OFImage image = ImageFileManager.getImage(); imagepanel.setimage(image); frame.pack(); 9

10 Layout managers Swing bruger layout managers til at bestemme, hvordan de enkelte elementer i en frame placeres i forhold til hinanden Det er en layout manager, der sørger for, at de to labels i nedenstående vindue placeres hhv. over og under billedet, og at de er venstrejusteret Lidt større Label Lidt mindre Billede Label Det er også layout manageren, der bestemmer, hvad der sker med de tre elementer, når billedet gøres mindre eller større Der er mange forskellige layout managers, som vi nu vil studere (nogle af) 10

11 Flow layout Elementerne placeres efter hinanden fra venstre mod højre Om nødvendigt begyndes på en eller flere nye linjer Elementernes størrelse ændres ikke, når vinduet skaleres Den horisontale og vertikale afstand mellem elementerne er fast Hver linje centreres horisontalt Her vil vi kun se på layout managernes "standard" opførsel Alle layout managers har parametre, der bestemmer deres detaljerede opførsel Venstre mod højre / højre mod venstre Vertikalt / horisontalt Afstand mellem elementerne Alignment, osv. Se Java API'en for øvrige detaljer 11

12 Horisontalt box layout Ligner flow design, men opfører sig anderledes, når vinduet skaleres Elementerne placeres fra venstre mod højre på én enkelt linje Elementernes størrelse ændres ikke, når vinduet skaleres Den horisontale afstand mellem elementerne er fast Linjen er venstrejusteret og centreres vertikalt 12

13 Vertikalt box layout Elementerne placeres under hinanden fra top mod bund Elementernes størrelse ændres ikke, når vinduet skaleres Den vertikale afstand mellem elementerne er fast Elementerne er venstrejusteret Om nødvendigt forkortes nogle af teksterne 13

14 Grid layout Elementer placeres i en grid (gitter) Elementernes har ens størrelse og denne tilpasses, så vinduet fyldes ud Om nødvendigt forkortes nogle af teksterne 14

15 Border layout Der er fem elementer (hvoraf et eller flere kan udelades) Når vinduet skaleres er det primært størrelse på center elementet, der ændres Vestlige og østlige element har fast bredde Nordlige og sydlige element har fast højde Umiddelbart kan man tro, at border layoutet er for specielt til at være nyttigt, men det er ingenlunde tilfældet 15

16 Border layout (fortsat) BlueJ's vinduer er Border layouts North West Center Center East South South 16

17 Border layout (fortsat) Vores vindue med billedet er også et border layout De to labels er placeret i henholdsvis North og South, mens billedet er placeret i Center West og East er tomme Label Billede Label Feltvariablen contentpane sættes til at pege på rammens content pane Sæt layoutet til Border Skab første label og placér den i NORTH Skab et ImagePanel og placér det i CENTER Skab anden label og placér den i SOUTH private void makeframe() { Container contentpane = frame.getcontentpane(); contentpane.setlayout(new BorderLayout(6, 6)); filenamelabel = new JLabel(); contentpane.add(filenamelabel, BorderLayout.NORTH); imagepanel = new ImagePanel(); contentpane.add(imagepanel, BorderLayout.CENTER); statuslabel = new JLabel(); contentpane.add(statuslabel, BorderLayout.SOUTH); filenamelabel, imagepanel og statuslabel er feltvariabler 17

18 Indlejring af layout managers De forskellige layout managers kan bruges inde i hinanden Grid layout Vertikalt box layout "Luft" Border layout Andet layout Flow layout 18

19 Dialogbokse og knapper Vi vil nu lave en dialogboks Den aktiveres via er menuindgang i Help menuen Skab Help menu og tilføj den til menubaren Skab menuindgang, tilføj den til Help menuen og specificerer, at det er showabout metoden, der skal aktiveres Kald af klassemetoden i JOptionPane Parametrene angiver Rammen hvori den skal vises Teksten, der skal vises Titlen, der skal vises øverst Message typen INFORMATION_MESSAGE ERROR_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE PLAIN_MESSAGE private void makemenubar() { Jmenu helpmenu = new JMenu("Help"); menubar.add(helpmenu); JMenuItem aboutitem = new JMenuItem("About ImageViewer"); helpmenu.add(aboutitem); aboutitem.addactionlistener( e -> showabout()); private void showabout() { JOptionPane.showMessageDialog( frame, "ImageViewer\n" + VERSION, "About ImageViewer" JOptionPane.INFORMATION_MESSAGE); Forskellige slags dialogbokse MessageDialog: OK button ConfirmDialog: Yes, No, Cancel button InputDialog: Tekstfelt til input + nogle knapper 19

20 Knapper Vi vil nu tilføje et par knapper, der kan ændre billedets størrelse Skab nyt panel og sæt dets layout manager til GridLayout Skab den første knap og tilføj den til panelet Skab den anden knap og tilføj den til panelet Skab et nyt panel og læg det første panel derind i Det yderste panel placeres i border layoutets vestlige del private void makeframe() { 0 nødvendige antal rækker JPanel toolbar = new JPanel(); toolbar.setlayout(new GridLayout(0, 1)); smallerbutton = new JButton("Smaller"); toolbar.add(smallerbutton); smallerbutton.addactionlistener(e -> makesmaller()); largerbutton = new JButton("Larger"); toolbar.add(largerbutton); largerbutton.addactionlistener(e -> makelarger()); JPanel flow = new JPanel(); flow.add(toolbar); smallerbutton og largerbutton er feltvariabler contentpane.add(flow, BorderLayout.WEST); Tilføjelsen af det yderste panel sikrer at knapperne ikke skaleres i højden (så de fylder hele West) JPanels har FlowLayout som default layout manager 20

21 Andre GUI elementer I denne forelæsning har vi kun set på nogle af de vigtigste elementer, der kan indgå i en grafisk brugergrænseflade Der masser af andre Scrollbarer (klassen Scrollbar) Checkbokse (klassen Checkbox) Radiobuttons (klassen JRadioButton) Lister hvor en/flere indgange kan være selekteret (klassen JList) Dropdown lister, hvor én indgang er selekteret (klassen JComboBox) Billeder (klassen ImageIcon) Kanter/rammer (interfacet Border og dets implementerende klasser) Usynlige elementer som påvirker layoutet (Box klassen) Fremgangsmåden er hele tiden den samme Skab GUI objekterne og tilføj dem til rammer, paneler og andre Container objekter Tilknyt en passende LayoutManager til containeren (eller brug default) Abonnér på de ActionEvents, der sendes fra GUI objektet og angiv, hvilken metode, der skal udføres, når GUI objektet aktiveres af brugeren 21

22 Gode råd omkring GUI konstruktion Cohesion og læsbarhed Placer GUI elementerne samlet (i en enkelt eller nogle få klasser) og adskilt fra de ting, der beskriver programmets øvrige funktionalitet Opdel i et antal private metoder (f.eks. makeframe og makemenubar) De lambda'erne, man bruger som parametre til addaction Listener metode bør være korte og letlæselige (f.eks. et metodekald til en privat metode, hvori den egentlige kode så placeres) Lad andre gøre arbejdet Brug de predefinerede GUI objekter i Swing og AWT Mange af disse kan identificere brugerevents og videregiver dem til lyttere (event listeners) Der findes værktøjer, hvor man kan lave en GUI via "plug and play" Elementerne i vinduer, dialogbokse, menuer og lignende skabes via byggeklodser, der tilpasses og placeres på rette position Herefter kan værktøjet selv generere den nødvendige Java kode med "huller" til den kode, der skal udføres ved modtagelsen af de forskellige GUI events Anvendelsen af sådanne værktøjer falder uden for rammerne af dette kursus 22

23 Anonyme indre klasser Indtil nu har vi specificeret event håndtering via lambda'er largerbutton.addactionlistener(e -> makelarger()); Dette har været muligt, fordi alle vores events har været af typen ActionEvent Disse aktiveres via en ActionListener, der et funktionelt interface, hvilket medfører at parameterværdien kan være en lambda Desværre har Java også en del ældre "lyttere" fra AWT, der ikke er funktionelle Det gælder bl.a. KeyListener, MouseListener og MouseMotionListener Håndtering af sådanne events sker typisk ved, at man for hvert event, der kan modtages, definerer en ny klasse, der implementerer det pågældende Listener interface (og udfører de operationer, der skal foretages) Vi får derfor en masse små klasser, hvor vi kun har behov for at skabe ét enkelt objekt af hver klasse Denne situation kan håndteres ved brug af anonyme indre klasser 23

24 Erklæring af anonym indre klasse Vi vil se på, hvordan muse-events kan håndteres Sådanne events generes, når brugeren trykker på en museknap (udenfor specifikke kontroller såsom knapper, menuindgange, scrollbarer, osv.) Tilknyt en MouseListener til imagepanel (det område af vores vindue, der ineholder billedet) private void makeframe() { imagepanel.addmouselistener(new MouseAdapter() { public void mousepressed(mouseevent e) { handlemousepressed(e); ); Parameteren til addmouselistener metoden skal være et objekt, der implementerer MouseListener interfacet Interfacet er ikke funktionelt, og vi kan derfor ikke bruge en lambda I stedet skaber vi et objekt, hvor klassen erklæres på det sted, hvor objektet bruges (mellem de to røde parenteser) Klassen er en subklasse af MouseAdapter klassen, der implementerer MouseListener interfacet Klassen har intet navn og er erklæret inde i ImageViewer klassen og er derfor en anonym indre klasse 24

25 MouseAdapter klassen MouseAdapter klassens implementation af MouseListener interfacet er helt triviel Alle syv metoder i interfacet har tomme kroppe i MouseAdaptor klassen Vi skal kun bruge én af metoderne i MouseListener interfacet Den erklærer vi i den anonyme indre klasse De øvrige seks nedarver vi fra MouseAdapter klassen De har tomme kroppe, men det betyder ikke noget, da vi ikke skal bruge dem Uden MouseAdapter klassen, skulle vi have implementeret alle syv metoder i MouseListener interfacet private void makeframe() { imagepanel.addmouselistener(new MouseAdapter() { public void mousepressed(mouseevent e) { handlemousepressed(e); ); Vi erklærer mousepressed metoden (der kalder en privat metode handlemousepressed) 25

26 Indre klasser Objekter af en indre klasse kan kun eksistere inde i objekter af den omgivende klasse Det indre objekt skabes sammen med det omgivende objekt og dør sammen med det Det indre objekt har adgang til private feltvariabler og metoder i det omgivende objekt Før introduktionen af funktionelle interfaces i Java 8 skulle man også lave en anonym indre klasse for hvert ActionEvent Nu kan man (som vi har set) i stedet bruge en lambda som parameter Det er meget lettere både at skrive og forstå Indre klasser behøver ikke være anonyme Man kan have en helt almindelig (ikke-anonym) klasse inden i en anden (den indre klasse placeres normalt sidst i den ydre klasse) På den måde kan man opdele en stor og kompleks klasse i flere (nært forbundne) klasser og dermed forbedre læsbarheden (øge cohesion) Ved at bruge indre klasser ( i stedet for almindelige klasser) har man adgang til feltvariablerne og metoderne i den omgivende klasse I computerspilsopgaven har GUI klasen en indre klasse, WorldPanel, som implementerer den del af vinduet, der indeholder landkortet 26

27 Kursusevaluering Kursusevalueringer er et vigtigt redskab til at forbedre vores kurser Jeres svar bruges af forelæserne til at forbedre næste års kurser Alle evalueringerne gennemgås af institutledelsen samt formændene for uddannelsesudvalget Dette er medvirkende til at kurserne opretholder deres høje kvalitet For at forbedre svarprocenten har fakultetet besluttet, at der skal afsættes tid ved forelæsningerne til at besvare kursusevalueringen Derfor vil vi nu bruge 5-10 minutter på det Resultatet af kursusevalueringen vil blive gennemgået og diskuteret ved den afsluttende forelæsning i uge 15 Jeg opfordrer kraftigt til, at I bruger tid på at deltage i denne (og andre) kursusevalueringer Det er en nem måde at få indflydelse på Det forbedrer forholdene for fremtidige studerende Det hjælper mig (og andre undervisere) med at forbedre indholdet af undervisningen 27

28 Forbedringer af kurset Vi forsøger løbende at forbedre kurset ved at lave små justeringer Til dette formål er den feedback, som I giver os via kommentarerne i kursusevalueringen særdeles nyttige Vi har allerede to ændringer, som vi vil lave næste år Bedre fordeling af arbejdsbelastningen på de tre første delafleveringer i computerspilsopgaven Udarbejdelsen af dokumentation flyttes fra computerspil 2 til computerspil 1 Implementation af equals og hashcode metoderne flyttes fra computerspil 3 til computerspil 1, hvor der også laves equals og hashcode metoder for Road og Position klassen Eksistensen af equals metoderne gør det muligt at bruge assertequals i computerspil 2 28

29 Forbedringer af kurset (fortsat) Der produceres en video om funktionel programmering Viser anvendelse af de fem funktionelle algoritmeskabeloner, samt funktionel sortering og print Forelæsningen om funktionel programmering flyttes fra mandag i uge 6 til torsdag i uge 5 Man får dermed lidt mere tid til at læse om funktionel programmering, før det skal anvendes ved øvelserne i uge 6 Afleveringsopgaverne i uge 6 vil være fire køreprøvesæt fra 2018 Man ser, hvordan et opgavesæt med 12 spørgsmål ser ud Man får mere træning i funktionel programmering Spørgsmål 10 (med sortering og print) vil fremover sommetider, skulle løses imperativt og sommetider funktionelt Man skal derfor mestre begge dele 29

30 Computerspil 3 I den tredje delaflevering skal I bruge nogle af de ting, som I har lært om nedarvning og dynamic method lookup til at strukturere jeres kode I skal indføre flere forskellige slags byer/lande: BorderCity repræsenterer en grænseby, hvor man skal betale told, når man ankommer fra udlandet CapitalCity repræsenterer en hovedstad, hvor der er mange fristelser, så man (udover at modtage bonus) bruger af sin formue MafiaCountry repræsenterer et land (Sverige!), hvor man risikerer at blive overfaldet og frarøvet dele af sin formue I skal også implementere equals og hashcode metoder i Country og City klasserne Herudover skal I rette gamle fejl og mangler holde jeres dokumentation og regression tests opdaterede herunder tilføje dokumentation og regression tests for nye programdele 30

31 Regression tests for BorderCity / CapitalCity Testmetoden for arrive metoden i BorderCity kan være næsten identisk med den tilsvarende testmetode i City klassen Den væsentlige forskel er, at der skal betales told, hvis spilleren kommer fra et andet land, f.eks. fra City E til City C Skaber en spiller, der ankommer fra City E til City C med en formue på 250 Beregn tolden Tag hensyn til Disse to byer ligger public void arrivefromothercountry() { i forskellige lander for(int i=0; i<1000; i++) { Player player = new Player(new Position(cityE, cityc, 0), 250); game.getrandom().setseed(i); // Set seed int bonus = country1.bonus(40); // Remember bonus int toll = // Calculate toll game.getrandom().setseed(i); // Reset seed int arrive = cityc.arrive(player); // Same bonus assertequals(arrive, ); assertequals(cityc.getvalue(), ); cityc.reset(); I bør også lave en testmetode, der tjekker, at der ikke betales told, når spilleren kommer fra samme land For CapitalCity klassen laves tilsvarende testmetoder Nu skal man også tage hensyn til de penge, som spilleren bruger i hovedstaden 31

32 Regression test for MafiaCountry Testmetoden for bonus metode i MafiaCountry kan være næsten identisk med den tilsvarende testmetode i Country klassen Risikoen for at blive røvet er 20% (med mindre den ændres via Options knappen) Tabet ved røveriet er et heltal mellem 10 og 50 (begge inklusive) Overvej om der er behov for negative tests i nogen af de nye klasser I skal tjekke, at tabet ved røveriet ligger i intervallet [10,50] man bliver røvet ca. 20% af gangene tabet i gennemsnit udgør ca. 30 tabet kan antage alle værdier i intervallet public void bonus(){ for(int seed = 0; seed < 1000; seed++){ game.getrandom().setseed(seed); int robs = 0; int loss = 0; Set<Integer> values = new HashSet<>(); for(int i = 0; i<50000; i++) { int bonus = country2.bonus(80); if(bonus < 0) { robs++; asserttrue(); loss -= bonus; values.add(-bonus); asserttrue(); asserttrue(); assertequals(); Mafialand I bør også lave en testmetode, der tjekker, at det kun er i et Mafialand, man risikerer at blive røvet 32

33 Debugningsværktøj Debugningsværktøjet skal også anvendes for CG3 Her testes kun de nye klasser, som I har skrevet i CG3 Hver af klasserne, testes sammen med vores løsning, således at I kan se for hvilke klasser testcg3 fejler Herudover udføres der, for hver klasse, en række regressiontests for konstruktørerne og metoderne i den indsatte klasse hvilket giver et fingerpeg om hvor i klassen fejlen(e) ligger Endelig testes det, at jeres regression tests for de nye klasser er fornuftige (på tilsvarende vis som i CG2) Brug debugningsværktøjet med omtanke Når I får en fejlrapport, bør I rette alle de fejl, der rapporteres og kontrollere, at rettelserne er korrekte, før I atter forsøger at køre debugningsværktøjet Når instruktorerne retter computerspilsafleveringerne, bruger de links fra en særlig debuggerside til at tilgå det seneste projekt, som I har kørt på debuggeren. Det er derfor vigtigt, at det projekt som I uploader på Blackboards afleveringsside er identisk med det seneste projekt, som I har kørt gennem debuggeren (for samme delaflevering). 33

34 Opsummering Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer, tekster, osv.) Hvordan reagerer de på input (via mus og tastatur)? Hvordan placeres de i forhold til hinanden (layout)? Anonyme indre klasser Sprogkonstruktion, der er nyttig i forbindelse med visse GUI events Afleveringsopgave: Computerspil 3 Brug af nedarvning og dynamic method lookup Husk træningen i mundtlig præsentation Den er uhyre vigtig for jeres succes ved mundtlig eksamen nu og fremover

35 Det var alt for nu.. spørgsmål 35

Forelæsning Uge 13 Mandag

Forelæsning Uge 13 Mandag Forelæsning Uge 13 Mandag Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer, tekster, osv.) Hvordan reagerer de

Læs mere

Forelæsning Uge 13 Torsdag

Forelæsning Uge 13 Torsdag Forelæsning Uge 13 Torsdag Konstruktion af grafiske brugergrænseflader (GUI'er) Definition af de elementer, der vises på skærmen (vinduer, knapper, menuer, scrollbarer, tekster, osv.) Hvordan reagerer

Læs mere

Forelæsning Uge 12 Mandag

Forelæsning Uge 12 Mandag Forelæsning Uge 12 Mandag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse

Læs mere

Forelæsning Uge 12 Torsdag

Forelæsning Uge 12 Torsdag Forelæsning Uge 12 Torsdag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse

Læs mere

Kursusgang 12. Oversigt: Sidste kursusgang Layout-manager Event-håndtering. Design af brugerflader 12.1

Kursusgang 12. Oversigt: Sidste kursusgang Layout-manager Event-håndtering. Design af brugerflader 12.1 Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering Design af brugerflader 12.1 Sidste kursusgang Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Over Forelæsning omponenter ogrammering sigt 14, 1999 freda containere 15. oktober 1999 Eksempel: out GUI til beregning fakultet.

Over Forelæsning omponenter ogrammering sigt 14, 1999 freda containere 15. oktober 1999 Eksempel: out GUI til beregning fakultet. Programmering 1999 Forelæsning 14, fredag 15. oktober 1999 Oversigt Repetition: GUI komponenter og containere. Layout af grafiske brugergrænseflader i Java. Større layout-opgave. Programmering 1999 KVL

Læs mere

COMPUTERSPIL 1. Opgave 1

COMPUTERSPIL 1. Opgave 1 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

Læs mere

COMPUTERSPIL 1. Opgave 1. Opgave 2

COMPUTERSPIL 1. Opgave 1. Opgave 2 COMPUTERSPIL 1 I løbet af de kommende fem uger skal I programmere et computerspil, hvor spillerne rejser rundt mellem byer i forskellige lande og indsamler point. Der er en delaflevering hver uge, hvor

Læs mere

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label Programmering 1999 Forelæsning 13, tirsdag 12. oktober 1999 Oversigt Grafiske brugergrænseflader. Komponenter: Knapper, tekstfelter, checkbokse... Vinduer (containere). Hændelser, hændelsesstyret programmering.

Læs mere

Hvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter

Hvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter OOP e2002 - uge 42 6. kursusgang Hvordan organiseres et programs grafik-elementer? 1. Teori: class Component og subklasser: Composite pattern layout-managere hændelsesstyret programmering 2. XP-program:

Læs mere

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Civilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave

Læs mere

DM34-1. Obligatorisk opgave Dilemma spillet. Jacob Aae Mikkelsen 191076 kok04

DM34-1. Obligatorisk opgave Dilemma spillet. Jacob Aae Mikkelsen 191076 kok04 DM34-1. Obligatorisk opgave Dilemma spillet Jacob Aae Mikkelsen 191076 kok04 April 2005 Kapitel 1 Resumé Denne rapport dokumenterer udviklingsforløbet og afprøvningen af et spil Dilemma. Spillet går ud

Læs mere

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda Forelæsning Uge 12 Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser af En abstrakt klasse kan indeholde

Læs mere

Serialization i Java

Serialization i Java Serialization i Java Tutorial lavet af Jákup W. Hansen TSU 2006 1.semester 06.novemter 2006 Hvad er Serialization? I vores tekstbog Objects First with Java bliver denne del af Java ikke gennemgået. Men

Læs mere

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Torsdag Forelæsning Uge 3 Torsdag Billedredigering (bl.a. brug af for-løkker) Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt)

Læs mere

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering

Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda

Har kun én enkelt abstract metode De steder, hvor man skal bruge et objekt, hvis type er et funktionelt interface, kan man i stedet bruge en lambda Forelæsning Uge 12 Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser af En abstrakt klasse kan indeholde abstrakte metoder, hvor kun hovedet er angivet, mens

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Torsdag Forelæsning Uge 3 Torsdag Billedredigering Gråtonebilleder (som er lidt simplere end farvebilleder) Arrays Kan "opbevare" et antal objekter (som ArrayList) Fast (på forhånd kendt) antal elementer Afleveringsopgave:

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Køreprøven i uge 7 Form Forberedelse

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder

Læs mere

Forelæsning Uge 6 Mandag

Forelæsning Uge 6 Mandag Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring

Læs mere

Gem dine dokumenter i BON s Content Management System (CMS)

Gem dine dokumenter i BON s Content Management System (CMS) 24. august 2007 Gem dine dokumenter i BON s Content Management System (CMS) INDHOLDSFORTEGNELSE 1. Indledning... 2 2. Se indholdet i dit Content Management System... 3 3. Tilgå dokumenterne i My Content

Læs mere

DRONNINGER (QUEENS) Opgave 1

DRONNINGER (QUEENS) Opgave 1 DRONNINGER (QUEENS) I denne opgave vil vi beskæftige os med det såkaldte 8-dronningeproblem, hvor man skal placerede 8 dronninger på et 8 x 8 skakbræt, således at ingen af dronningerne kan slå hinanden.

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Information om køreprøven i uge

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil Forelæsning Uge 11 Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder en

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Introduktion til ActionScript

Introduktion til ActionScript Introduktion til ActionScript Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling på

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet

Læs mere

Introduktion til ActionScript, fortsat

Introduktion til ActionScript, fortsat Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling

Læs mere

Kapitel 6 Events i C#

Kapitel 6 Events i C# Kapitel 6 i C# Når vi snakker programmering er en Event når der aktiveres specielt indbygget kode. Der sker en hændelse (event). Man siger at eventet bliver udført. De events vi skal gennemgå i dette kapitel

Læs mere

Forelæsning Uge 11 Torsdag

Forelæsning Uge 11 Torsdag Forelæsning Uge 11 Torsdag Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Forelæsning Uge 10 Torsdag

Forelæsning Uge 10 Torsdag Forelæsning Uge 10 Torsdag Opremsningstyper Enumerated types Forskellige teknikker til test og debugging Når man tester undersøger man, om opførslen (semantikken) er den ønskede Når man debugger (afluser),

Læs mere

BILLEDREDIGERING (IMAGES)

BILLEDREDIGERING (IMAGES) BILLEDREDIGERING (IMAGES) I dette projekt skal I redigere gråtonebilleder ved hjælp af nogle af de teknikker, der blev beskrevet i en forelæsning. Hent BlueJ-projektet Image (zip) og husk at pakke det

Læs mere

Indhold. Evalueringsvejledning. En undersøgelse fra start til slut involverer 4 programmer: - SurveyXact - Excel - E-learn - SiteCore

Indhold. Evalueringsvejledning. En undersøgelse fra start til slut involverer 4 programmer: - SurveyXact - Excel - E-learn - SiteCore Evalueringsvejledning En undersøgelse fra start til slut involverer 4 programmer: - SurveyXact - Excel - E-learn - SiteCore Indhold 1 - Respondentgruppe hentes... 2 2 Undersøgelsen oprettes i SX... 4 3.

Læs mere

Objects First with Java A Practical Introduction Using BlueJ

Objects First with Java A Practical Introduction Using BlueJ Objects First with Java A Practical Introduction Using BlueJ En introduktion til objektorienteret programmering for begyndere ud fra et software engineering aspekt Om at programmere i Java, ikke om værktøjet

Læs mere

Opstart. I gang med Dreamweaver. Læs mere om... Generelle bemærkninger. Hvilken skærmopløsning? OBS

Opstart. I gang med Dreamweaver. Læs mere om... Generelle bemærkninger. Hvilken skærmopløsning? OBS Generelle bemærkninger Programmet Dreamweaver har været på markedet i nogle år efterhånden. Den seneste version hedder Dreamweaver CS4, og programmet er på engelsk. Dreamweaver er en såkaldt grafisk editor,

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Information om køreprøven i uge

Læs mere

Forelæsning Uge 11 Mandag

Forelæsning Uge 11 Mandag Forelæsning Uge 11 Mandag Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder

Læs mere

Forelæsning Uge 4 Torsdag

Forelæsning Uge 4 Torsdag Forelæsning Uge 4 Torsdag Klassevariabler og klassemetoder Levetid for variabler og parametre Virkefeltsregler Projektopgave Kaninjagt Lommeregner (for MAT studerende) Klassevariabler og klassemetoder

Læs mere

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

Læs mere

blackboard Kursusmateriale Quick guide til undervisere

blackboard Kursusmateriale Quick guide til undervisere blackboard Kursusmateriale Quick guide til undervisere Kursusmateriale Introduction Manual Version 1.1 Publisher Knowledge group AU IT / BSS Support Fuglesangs Allé 4 8210 Aarhus V Advanced Multimedia

Læs mere

Opstart. I gang med Dreamweaver. Læs mere om...

Opstart. I gang med Dreamweaver. Læs mere om... Generelle bemærkninger Programmet Dreamweaver har været på markedet i nogle år efterhånden. Den seneste version hedder Dreamweaver CS5, og programmet er på engelsk. Dreamweaver er en såkaldt grafisk editor,

Læs mere

Quick guide til e-learn.sdu.dk (Blackboard) for studerende

Quick guide til e-learn.sdu.dk (Blackboard) for studerende Quick guide til e-learn.sdu.dk (Blackboard) for studerende Der opnås adgang til e-learn.sdu.dk (Blackboard) via single sign-on, sso.sdu.dk/, eller adressen: e-learn.sdu.dk/. Du kan også logge på ved at

Læs mere

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Objekters tilstand og opførsel BlueJ og Greenfoot Java Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Forskellige slags variabler Afleveringsopgave:

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

FORCE Inspect Online Manual v. 1.02. FORCE Inspect Online Manual. 1 af 18

FORCE Inspect Online Manual v. 1.02. FORCE Inspect Online Manual. 1 af 18 FORCE Inspect Online Manual 1 af 18 Indholdsfortegnelse Indholdsfortegnelse... 2 FORCE Inspect Online Manual... 3 Generelt... 3 Login... 3 Main... 4 Intro sektion... 4 Links sektion... 4 News sektion...

Læs mere

Sådan gør du:

Sådan gør du: H5P er et redskab til at gøre dine præsentationer interaktive med flere forskellige interaktive muligheder. Med eksempelvis interaktive videoer er det muligt som underviser at stille prædefinerede spørgsmål

Læs mere

Active Builder - Brugermanual

Active Builder - Brugermanual Active Builder - Brugermanual Version: Release 2.0 Sprog: Dansk Copyright 2014 - Talk Active ApS INDHOLDSFORTEGNELSE INDHOLDSFORTEGNELSE... 2 1. HURTIGT OVERBLIK... 4 1.1 Vælg URL:... 4 1.2 Vælg en skabelon:...

Læs mere

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN Indholdsfortegnelse Introduktion... 2 Definitioner... 2 Generelt... 3 Oprettelse af en skabelon... 4 Sidetypeskabeloner... 5 Globale displaymoduler...

Læs mere

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss

Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003. Jonas Christiansen Voss Introduktion til CD ere og Arkivdeling Gammel Dok - September-oktober 2003 Jonas Christiansen Voss 2. marts 2004 Indhold 1 CD ere 2 1.1 Brænde dokumenter til CD....................... 2 1.2 Disk Copy.................................

Læs mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 7 Swing og MVC Swing: MVC, Datamodeller, JTable, evt. JTree Evt.: Swing: Præsentations og kontroldel Læsning: VP 6 Dette materiale er under Åben Dokumentlicens, se

Læs mere

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1. Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:

Læs mere

Brugervejledning for Microstation til OpenSceneGraph konverter

Brugervejledning for Microstation til OpenSceneGraph konverter Brugervejledning for Microstation til OpenSceneGraph konverter - sidste rettelse: 10/06/2005 side 1 Indholdsfortegnelse Kort oversigt over dgn2osg... 3 Systemkrav... 3 Funktionalitet...4 Geometri...4 Materialer...

Læs mere

Virkefeltsregler i Java

Virkefeltsregler i Java Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten

Læs mere

Qwickly fremmøderegistrering mm. i Blackboard

Qwickly fremmøderegistrering mm. i Blackboard v. 1.0 august 17 Qwickly fremmøderegistrering mm. i Blackboard Fremmøde-registrering på kurser kan foregå digitalt i Blackboard via den installerede building block, Qwickly. Qwickly består af to dele,

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Lektion 6. Grundlæggende programmering i VR

Lektion 6. Grundlæggende programmering i VR Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til

Læs mere

Log ind i administrationspanelet

Log ind i administrationspanelet Kongsgaarden Vester Broby CMS baseret på WordPress Log ind i administrationspanelet... 1 Begreber og visualisering (skabelonen Standard)... 2 Begreber og visualisering (skabelonen Full width)... 2 Sidebars...

Læs mere

Aftenskole i programmering sæson Registrering af tid. Sæson 2 - Lektion 5

Aftenskole i programmering sæson Registrering af tid. Sæson 2 - Lektion 5 Registrering af tid Sæson 2 - Lektion 5 Før jul Vi har designet og bygget en model til håndtering af en timeregistrering Vi har kigget på hvordan vi håndterer fejl Vi har kopieret koden over i Bents x-code

Læs mere

Selv om websites er yderst forskellige i deres fremtræden, så kan de stort set alle sammen passes ind i den skabelon som er illustreret herunder:

Selv om websites er yderst forskellige i deres fremtræden, så kan de stort set alle sammen passes ind i den skabelon som er illustreret herunder: Design en praktisk guide. Et design udtrykker dit websites grafiske udseende, lige fra hvilke skrifttyper der anvendes op til hvor navigationen er placeret og hvilke interaktive elementer der skal benyttes.

Læs mere

Guide til oprettelse/redigering af events på bornholm.info

Guide til oprettelse/redigering af events på bornholm.info Guide til oprettelse/redigering af events på bornholm.info Trin Login Beskrivelse 1. Login på hjemmesiden: URL: http://bornholm.info/wp-admin/ Brugernavn: se mailen Adgangskode: se mailen Opret event 1.

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

My booking. Generelt. Forsiden. Version 9.0

My booking. Generelt. Forsiden. Version 9.0 My booking Version 9.0 System til at lave online bookinger, med mulighed for opdeling i grupper, forskellige booking typer, ændre layout indstillinger, status styring, sprogvalg samt en del mere, detaljer

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3 DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget

Læs mere

Kom godt i gang med I-bogen

Kom godt i gang med I-bogen Kom godt i gang med I-bogen At åbne bogen Det allerførste, du skal gøre, for at kunne arbejde med i-bogen, er at aktivere den. Det gøres ved at oprette en konto på systime.dk og derefter aktivere bogen

Læs mere

Login side 3. Visninger i mediebiblioteket side 5. Opdater din crawl side 7. Upload af billeder side 9. Upload billeder via Drag&Drop side 14

Login side 3. Visninger i mediebiblioteket side 5. Opdater din crawl side 7. Upload af billeder side 9. Upload billeder via Drag&Drop side 14 Indholdsfortegnelse: Login side 3 Visninger i mediebiblioteket side 5 Opdater din crawl side 7 Upload af billeder side 9 Upload billeder via Drag&Drop side 14 Udfyld og indsæt valgfri side i playlisten

Læs mere

OrCAD Capture TCL IDE med Eclipse

OrCAD Capture TCL IDE med Eclipse OrCAD Capture TCL IDE med Eclipse OrCAD Capture TCL er et script sprog til at lave applikationer til OrCAD Capture. Eclipse er et gratis udviklingsmiljø med debug muligheder. Denne guide hjælper med at

Læs mere

Indholdsfortegnelse: SUPPORT Har du brug for hjælp til anvendelse af Qwickly Attendance eller Qwickly+, er du velkommen til at kontakte

Indholdsfortegnelse: SUPPORT Har du brug for hjælp til anvendelse af Qwickly Attendance eller Qwickly+, er du velkommen til at kontakte Qwickly er tilgængelig via Blackboard og består af to dele: Qwickly Attendance og Qwickly+. Qwickly Attendance håndterer fremmøderegistrering på de enkelte kurser, hvor Qwickly+ via forsiden af Blackboard

Læs mere

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske Det Naturvidenskabelige Fakultet Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske Indholdsfortegnelse Introduktion til Blackboard Content System...3 Øvelse 01 individuel:

Læs mere

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige

Læs mere

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil

Forelæsning Uge 11. Nedarvning. Object klassen. Projektopgave om computerspil Forelæsning Uge 11 Nedarvning En klasse kan være en subklasse af en anden Det betyder at subklassen arver superklassens feltvariabler og metoder Object klassen Superklasse for alle klasser Indeholder en

Læs mere

photoshop udgave Udgivet af Softworld A/S

photoshop udgave Udgivet af Softworld A/S Photoshop photoshop 112 1. udgave Udgivet af Softworld A/S Kopiering samt gengivelse af indholdet er ikke tilladt, medmindre der er givet skriftlig tilladelse herom. Copyright Softworld A/S brugerfladen

Læs mere

Procedure for evaluering

Procedure for evaluering Procedure for evaluering Evaluering af et undervisningsforløb indeholder tre elementer. Ved undervisningens start orienteres de studerende om indhold og mål for faget, og de har mulighed for at redegøre

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

Læs mere

Visualiseringsprogram

Visualiseringsprogram Visualiseringsprogram Programmering C - eksamensopgave Rami Kaddoura og Martin Schmidt Klasse: 3.4 Vejleder: Karl Bjarnason Roskilde Tekniske Gymnasium Udleveringsdato: 02-03-2012 Afleveringsdato: 11-05-12

Læs mere

Sider, indlæg og projekter

Sider, indlæg og projekter Sider, indlæg og projekter I Divi-temaet er der tre forskellige måder at lægge artikler op på sitet; Sider, indlæg og projekter. På Villybruun.dk bruges Sider til alle artikler. Man kan oprette eller redigere

Læs mere

ViKoSys. Virksomheds Kontakt System

ViKoSys. Virksomheds Kontakt System ViKoSys Virksomheds Kontakt System 1 Hvad er det? Virksomheds Kontakt System er udviklet som et hjælpeværkstøj til iværksættere og andre virksomheder som gerne vil have et værktøj hvor de kan finde og

Læs mere

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner..

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse... 4. Styring af layout.. 5. Zoom funktioner.. Indholdsfortegnelse Indholdsfortegnelse.. side 2 Adgang til webgraf 3 Opslag adresse... 4 Styring af layout.. 5 Zoom funktioner.. 6 Panorere på skærmen. 7 Information om grafikken.... 8-10 Print et udsnit.....

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

EDUCATE.AU.DK/BLACKBOARD

EDUCATE.AU.DK/BLACKBOARD Kaltura er en videoserver på AU Library, Aarhus Universitet, hvor ansatte kan uploade video filer via Blackboard. Det samme kan studerende, hvis underviseren giver dem lov. Du uploader alle dine videoer

Læs mere

DMX styring med USB-interface

DMX styring med USB-interface DMX styring med USB-interface Introduktion...2 DMX bibliotek...3 Programmering af kanaler...7 Sådan skabes et show/en lyssekvens...11 Introduktion DMX LightPlayer er en avanceret men meget brugervenlig

Læs mere

Velkommen til kursusevaluering i Blackboard

Velkommen til kursusevaluering i Blackboard Vælg et emne klik på et af nedenstående emner og benyt pil frem og tilbage for at bladre Velkommen til kursusevaluering i Blackboard Login i Blackboard Opstart og valg af kursus Find evalueringsmodulet

Læs mere