Forelæsning Uge 13 Mandag
|
|
- Niels Mølgaard
- 6 år siden
- Visninger:
Transkript
1 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 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 4 Modifikation af den grafiske brugergrænseflade
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 vinudet 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 Windows Titel Titelbar 3 menuer Menubar 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) 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 Kalder en privat metode Initialisering af feltvariablen Erklæring af lokal variabel af type Container Erklæring af en label Tilføjes til contentpane Rammen pakkes (størrelse 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() { 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); I am a label Menubar mangler 5
6 Menuer private void makeframe() { frame = new JFrame("ImageViewer"); makemenubar(frame); Privat metode Al kode til konstruktion af menubaren Eksempel på god "cohesion" Har rammen (frame) som parameter Open Quit I am a label Menubar Menu MenuItem Disse to linjer bevirker, at vores objekt bliver informeret, når en af de to menuindgange vælges (næste slide) 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); openitem.addactionlistener( e -> openfile()); JMenuItem quititem = new JMenuItem("Quit"); filemenu.add(quititem); quititem.addactionlistener( e -> quit()); 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 abonnerer på ActionEvents via addactionlistener metoden Parameteren til metodekaldet specificerer, ved hjælp af en lambda, 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 fordi ActionListener er et funktionelt interface (ActionEvent e) -> { quit(); 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); Når brugeren vælger Open i File menuen kaldes openfile metoden OFImage objektet tilknyttes imagepanel objektet Rammen pakkes (idet imagepanel objektet har skiftet indhold og dermed størrelse) Kald af getimage klassemetoden i ImageFileManager Åbner en dialogboks, hvori brugeren vælger en fil Filens billede returneres som et OFImage objekt, der assignes til den lokale variabel image 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å ny linje(r) Elementernes størrelse ændres ikke, når vinduet skaleres Den horisontale og vertikale afstand mellem elementerne er fast Hver linje centreres horisontalt 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. Her vil vi kun se på layout managernes "normale" opførsel 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 efter hinanden fra venstre mod højre Elementernes størrelse ændres ikke, når vinduet skaleres Hvis de ikke kan være der, kan de sidste ikke ses Linjen centreres vertikalt Den horisontale afstand mellem elementerne er fast 12
13 Vertikalt box layout Elementer placeres under hinanden fra top mod bund Hvis de ikke kan være der kan de sidste ikke ses Elementer er venstrejusteret Elementernes størrelse ændres ikke, når vinduet skaleres Den vertikale afstand mellem elementerne er fast Om nødvendigt forkortes nogle af teksterne 13
14 Grid layout Elementer placeres i et gitter (grid) Elementernes får 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 15
16 Border layout (fortsat) Umiddelbart kan man tro, at border layoutet er for specielt til at være nyttigt Men det er ingenlunde tilfældet BlueJ's editorvindue BlueJ's oversigtsvindue Border layout hvor West er tom Border layout hvor North og East er tomme 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 Erklær contentpane og 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); 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 Denne 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 showmessagedialog i JOptionPane Parametrene angiver Rammen hvori den skal vises Teksten der skal vises Titlen der skal vises øverst Typen (bestemmer knapperne) private void makemenubar() { helpmenu = new JMenu("Help"); menubar.add(helpmenu); item = new JMenuItem("About ImageViewer"); helpmenu.add(item); item.addactionlistener( e -> showabout()); private void showabout() { JOptionPane.showMessageDialog( frame, "ImageViewer\n" + VERSION, "About ImageViewer" JOptionPane.INFORMATION_MESSAGE); Forskellige slags dialogbokse Message Dialog: OK button Confirm Dialog: Yes, No, Cancel button Input Dialog: 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 vilkårligt 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); contentpane.add(flow, BorderLayout.WEST); JPanels har FlowLayout som default layout manager Tilføjelsen af det yderste panel sikrer at knapperne ikke skaleres i højden (så de fylder hele West) 20
21 Andre GUI elementer I denne forelæsning har vi kun set på nogle af de vigtigste elementer, der kan indgå i en GUI 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) Tilknyt en privat metode, som kan håndtere de events, der modtages fra GUI objektet 21
22 Anonyme indre klasser Indtil nu har vi specificeret event håndtering via lambda'er Lambda'en specificerer en private metode som udføres, når et event modtages 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,dvs. kun har en abstrakt metode, som kan erstattes af 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 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 et enkelt objekt af hver klasse Denne situation håndteres bedst ved brug af anonyme indre klasser 22
23 Erklæring af anonym indre klasse Vi vil nu erklære en anonym indre klasse til håndtering af mousepressed events Sådanne events generes, når brugeren trykker på en museknap (udenfor specifikke kontroller såsom knapper, menuindgange, scrollbarer, osv.) Skab et ImagePanel objekt Tilknyt en MouseListener Parameteren skal være et objekt, der implementerer interfacet MouseListener Klassen erklæres på stedet Det skal være en subklasse af MouseAdapter klassen (der implementerer interfacet MouseListener) Det skal implementere metoden mousepressed (som blot kalder en privat metode handlemousepressed i vores ImageViewer klasse) Før introduktionen af funktionelle interfaces i Java 8 skulle man lave en anonym indre klasse for hvert ActionEvent Nu kan man blot skrive en lambda (hvilket er meget lettere) private void makeframe() { imagepanel = new ImagePanel(); imagepanel.addmouselistener(new MouseAdapter() { public void mousepressed(mouseevent e) { handlemousepressed(e); ); contentpane.add(imagepanel, BorderLayout.CENTER); Objekter af den indre klasse kan kun eksistere inde i objekter af den omgivende klasse Det indre objekt har adgang til private feltvariabler og metoder i den omgivende klasse 23
24 Computerspil 4 I den fjerde delaflevering skal I bruge nogle af de ting, som I har lært om grafiske brugergrænseflader I skal tilføje nogle ekstra knapper, labels og tekstfelter til GUI klassen GUI kode er tricket og vanskelig at mestre Men I kan blot se, hvordan de eksisterende GUI elementer er implementeret, og så kopierer koden herfra (med trivielle modifikationer) Herudover skal I (som sædvanlig) rette gamle fejl og mangler tilføje dokumentation for nye programdele I behøver ikke at lave regression tests for jeres GUI metoder Men de skal afprøves efterhånden, som I laver dem 24
25 Opsummering Konstruktion af grafiske brugergrænseflader Hvilke elementer kan 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 event handlere, såsom KeyListener, MouseListener og MouseMotionListener Afleveringsopgave: Computerspil 4 Modifikation af den grafiske brugergrænseflade 25
26 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) 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) Event listeners Implementeres normalt ved hjælp af lambda'er For at holde lambda'erne så korte (og læselige) som muligt, bør de blot kalder en privat metode, hvori den egentlige kode så placeres For de lyttere, der ikke er funktionelle, benyttes anonyme indre klasser 26
27 Det var alt for nu.. spørgsmål 27
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 mereKonstruktion af grafiske brugergrænseflader (GUI'er)
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
Læs mereKursusgang 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 mereKursusgang 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 mereOver 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 mereimport 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 mereHvordan 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 mereSerialization 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 mereDM34-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 mereVideregå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 mereCivilingeniø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 mereGrundlæ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 mereForelæ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 mereForelæ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 mereForelæ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 mereCOMPUTERSPIL 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 mereCOMPUTERSPIL 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 mereForelæ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 mereKapitel 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 mereForelæ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 mereDM507 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 mereDM507 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 mereForelæ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 mereForelæ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 mereIntroduktion 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 mereForelæ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 mereIntroduktion 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 mereObjects 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 mereUgeseddel 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 mereGem 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 mereLektion 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 mereDRONNINGER (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 mereGuide 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 mereForelæ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 mereBrugervejledning 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 mereForelæ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 mereVideregå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 mereIndledning. 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 mereForelæ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 mereI denne manual kan du finde en hurtig introduktion til hvordan du:
VORES NORDSJÆLLAND HURTIGT I GANG MANUAL 01: Bruger HVAD INDEHOLDER DENNE MANUAL? I denne manual kan du finde en hurtig introduktion til hvordan du: 1. Finder Vores Nordsjælland hjemmesiden 2. Opretter
Læs mereBinært LAS-format Denne indstilling import Laser scan datafiler, i LAS format.
Kvadratnetsmodel - Import af Laser Scan Datafiler Funktionen til at oprette kvadratnetsmodeller er nu blevet udvidet og omfatter nu også en funktion til at importere laser scanning datafiler. Metoden bag
Læs mereHvad 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 mereInden du går i gang. For Mozilla Firefox brugere. For Internet Explorer brugere
Side 1 af 8 Inden du går i gang For at kunne bruge Alm. Brand Netbank skal du enten bruge Internet Explorer eller Mozilla Firefox. Vi understøtter ikke brug af Google Chrome, og vi kan derfor ikke garantere,
Læs mereBrugervejledning Joomla
Brugervejledning Joomla Denne brugervejledning vil guide dig gennem de funktioner, som du skal bruge for at redigere indhold på dit website. Indholdsfortegnelse LOG- IN:... 2 OPRET ARTIKEL:... 3 INDSÆT
Læs mereBILLEDREDIGERING (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 mereDM507 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 mereSelv 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 mereDMX 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 mereHUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING
HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING KOMMANDOOVERSIGT TIL BRUG PÅ WINDOWS COMPUTERE MED JAWS INTRODUKTION: Brailliant displays har indbygget BlueTooth og USB. BlueTooth anvendes til at forbinde
Læs mereNår du holder møder i Connect
Når du holder møder i Connect Det er vigtigt at den/de der er host og presenter på mødet sidder ved en forholdsvis kraftig computer, og har en god bredbåndsforbindelse. Hvis man skal vise præsentationer,
Læs mereVirkefeltsregler 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 mereActive 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 mere5. Teknisk beskrivelse af programmet 5.1 Programmets primære strukturer Datastruktur 1-6 3-6 Datastruktur
5. Teknisk beskrivelse af programmet Afsnittet indeholder en beskrivelse af de vigtigste klasser i programmet. (Den tekniske beskrivelse af databasen er givet i afsnit 3.3 Databasedesign på side 20.) Dette
Læs mereForelæ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 mereNolde Museet. I gang med Dreamweaver. Opgave. Opgavebeskrivelse. Layout. Mål og CSS
Opgavebeskrivelse Lav en webside om i Sønderjylland. Opgaven fører dig igennem de basale ting, hvad angår opbygningen af en side med CSS. Der er ikke tale om et komplet site, men du kan bruge opgaven som
Læs mereDM507 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 mereFoto upload manual Til www.kampseddel.dk
Foto upload manual Til www.kampseddel.dk Kort om kampseddel.dk Kampseddel.dk er udarbejdet som et webbaseret værktøj til den frivillige Træner/Leder i en idrætsklub. En leder der har behov for at holde
Læs mereLog 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 mereSådan opretter du en elektronisk aflevering
Sådan arbejder du med opgaver i Gradebook/karakterbog Denne vejledning indeholder en detaljeret beskrivelse af hvordan du bruger gradebook/karakterbogen når du vil arbejde med opgaver og give karakterer
Læs mereAdobe Acrobat Connect brugergrænsefladen
Adobe Acrobat Connect brugergrænsefladen Adobe Connect er et webbaseret videokonferenceværktøj, der giver mulighed for online, synkron kommunikation, deling af filer, skærm og whiteboard, gennemførelse
Læs mereIntroduktion 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 mereRationel VinduesDesigner TM Brugervejledning
Rationel VinduesDesigner TM Brugervejledning indhold: introduktion Side 2 Funktionsliste Side 3 Få adgang til systemet Side 4 opload dine billeder Side 5 Sådan bruges systemet Side 6 Gem dine eksempler
Læs mereTrimble Business Center 2.60
Trimble Business Center 2.60 Oprettelse af 2D linjeføring udfra dxf-fil - Samt overførsel og afsætning på controller Februar 2012 Jens Esbech GEOTEAM A/S je@geoteam.dk Denne vejledning omhandler: 1) Hvordan
Læs mereVejledning i brug af dli dokumenthåndteringssystemet til virksomheder
Vejledning i brug af dli dokumenthåndteringssystemet til virksomheder Indhold Generelt... 1 Windows tidligere versioner... 1 Windows 10... 2 Apple Mac... 2 Log på... 2 Rediger dokumentet... 2 Tilføj et
Læs mereAftenskole 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 mereIndholdsfortegnelse. 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 merephotoshop 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 mereOrCAD 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 mereBrugermanual. - For intern entreprenør
Brugermanual - For intern entreprenør Version 1.0 2014 Brugermanual - For Intern Entreprenør Velkommen som bruger på Smartbyg.com. Denne manual vil tage dig igennem de funktioner der er tilgængelig for
Læs mereVejledning til oprettelse og korrektion af brevskabeloner i TAS 1
VEJLEDNING Koncern It 6. april 2011 Pernille Sünksen Support Vejledning til oprettelse og korrektion af brevskabeloner i TAS Vejledning til oprettelse og korrektion af brevskabeloner i TAS 1 Brevskabelon
Læs mereForelæ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 mereForelæ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 mereIntroduktion til Flash, fortsat
Introduktion til Flash, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net Dagens program Opsamling på sidste forelæsning. Vi vil beskæftige os med følgende emner i dagens forelæsning: Komponenter
Læs mereVejledning KPK Online Prøverum
Vejledning KPK Online Prøverum INDHOLD Introduktion side 2 Funktionsliste side 2 Få adgang til systemet side 3 Opload dine billeder side 4 Sådan bruges systemet side 5 Gem dine eksempler side 7 Side 1/7
Læs mereFORCE 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 mereSkifte til OneNote 2010
I denne vejledning Microsoft Microsoft OneNote 2010 ser meget anderledes ud end OneNote 2007, og vi har derfor oprettet denne vejledning, så du hurtigere kan komme i gang med at bruge programmet. Læs videre
Læs mereTegneserien - Kom godt i gang. Mikro Værkstedet A/S
Tegneserien - Kom godt i gang Mikro Værkstedet A/S Tegneserien - Kom godt i gang Mikro Værkstedet A/S Revision 1.14, 15. maj 2007 Indholdsfortegnelse 1. Forord... 1 2. Kom godt i gang... 3 2.1. Opstart
Læs mereSider, 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 mereAdministration 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 mereNR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015
NR. 92 PDF-formularer med OpenOffice DEN 4. MARTS 2015 PDF-formularer med OpenOffice til LUDUS Web Målet med dette Tips & Tricks er at beskrive, hvordan man laver PDF-formularer til brug i LUDUS Web. Læs
Læs mereForelæ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 mereFormular modul. Sitecore Foundry juli Version 1.0
Sitecore Foundry 3.0 Formular modul 15. juli 2011 - Version 1.0 Pentia A/S Store Kongensgade 66, Baghuset 1264 København K Telefon: 7023 3330 E-mail: info@foreningssite.dk Indholdsfortegnelse Indledning...
Læs mereAdobe Elements Lektion 2
Adobe Elements Lektion 2 Så er det igen tid til at lege lidt med billeder. Jeg går ud fra, at du nu har fået opsat Elements efter de anvisninger du fik i sidste lektion. Start Elements op Gå ind i Edit
Læs mereFase Forklaring Navigation. Opret en div til feltet hvorpå scrollbaren ønskes placeret. Giv div'en mål og position absolut. Vælg Overflow: auto.
1 Scrollbar Åbn index.html Der skal være en side åben. Indsæt en div: scroll Opret en div til feltet hvorpå scrollbaren ønskes placeret. Definér div'en Giv div'en mål og position absolut. Vælg Overflow:
Læs mereÅben Power Point... Side 2. Ny præsentation... Side 2. Dias layout... Side 2. Temaer... Side 3. Gem dit eget tema... Side 3. Diasmaster...
Præsentationsprogram Microsoft Power Point Side Opgaver Indholdsfortegnelse Åben Power Point... Side Ny præsentation... Side Dias layout... Side Temaer... Side Gem dit eget tema... Side Diasmaster... Side
Læs mereDM507 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 mereclass 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 mereForelæ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 mereMicrosoft. fra Word 2003
I denne vejledning Microsoft Word 2010 ser meget anderledes ud end Word 2003, og vi har derfor oprettet denne vejledning, så du hurtigere kan komme i gang med at bruge programmet. Læs videre for at få
Læs mereQuick 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 mereUniversity 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 mereXerox. Øvelse med tekst og billeder Nattergalen
Xerox Øvelse med tekst og billeder Nattergalen 1. opsætning af dokument i InDesign: - Klik File > New. I dialogboksen udfyldes indstillingerne som vist herunder. Det er vigtigt, at tage stilling til størrelser
Læs mereNational sprogscreening af EUD-elever. skolens egne logins
Kompetencecenter for e-læring Det Nationale Videncenter for e-læring Vejledning til National sprogscreening af EUD-elever ved anvendelse af skolens egne logins Sprogscreeningen tilgås via et link Indhold
Læs mereVejledning til. Svejsevisitering. Oprettelse af kursister i testsystemet... 2. Opret Booking... 5. Kursisten tager test... 10
Kompetencecenter for e-læring Det Nationale Videncenter for e-læring Vejledning til Svejsevisitering Indhold Oprettelse af kursister i testsystemet... 2 Opret Booking... 5 Kursisten tager test... 10 Læreren
Læs mereForelæsning Uge 3 Mandag
Forelæsning Uge 3 Mandag ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet i JavaDoc) MusicOrganizer projektet Eksempel på brug af ArrayList
Læs mereVisualiseringsprogram
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 mereForelæ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 mereIndhold. 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 mereWINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9
EVENTS INTERAGEREN MED FIL SYSTEMET WINDOWS FORMS Grundlæggende programmering Lektion 9 1 EVENTS Der sker ting når der sker ting 2 EVENTS Events er brugerhandlinger såsom tastetryk, klik, musebevægelser,
Læs mere