New & Cool. Scripting & graphics in JavaFX
|
|
|
- Alfons Koster
- 9 jaren geleden
- Aantal bezoeken:
Transcriptie
1 New & Cool In het eerste deel van dit tweeluik hebben we Java FX, de nieuwe oplossing van Sun voor het bouwen van RIA s, geïntroduceerd.. In dit tweede deel gaan we uitgebreid in op de script aspecten van JavaFX en bespreken we welke grafische mogelijkheden JavaFX ons biedt. JavaFX: On the road Scripting & graphics in JavaFX JavaFX is voortgekomen uit de scripttaal F3 (Form Follows Function), F3 is oorspronkelijk ontworpen door Chris Oliver. Nadat SUN het bedrijf waarvoor Chris Oliver werkzaam was overnam, adopteerde het bedrijf F3 en wordt het nu in de markt gezet als JavaFX. Dat JavaFX een belangrijk onderdeel is van de totale strategie voor het Java-platform werd benadrukt op de laatste JavaOne conferentie. De intentie bij het ontwerp van deze taal was om een gemakkelijke taal te ontwerpen waarmee ontwikkelaars snel GUI-applicaties konden realiseren. F3 was initieel opgezet als interpreteerbare code, wat wil zeggen dat het een code is die pas op moment van uitvoer wordt geëvalueerd en omgezet naar machinecode. Later heeft men de keuze gemaakt om de code te compileren naar uitvoerbare bytecode die op elke JVM kan worden uitgevoerd, echter het is ook nog steeds mogelijk om op runtime niveau JavaFX script te interpreteren. Keyword Var Function Def Tabel 1. Betekenis Definitie van een variabele Methode met resultaat Definitie van een constante waarde var integer i = 0; function createcustomer(): Customer{; def String applicationtitle = My application ; Een voorbeeld van het gebruik van deze sleutelwoorden zie je in Codevoorbeeld 1. var outcome: Number; def radius = 30; function d(): Number{ return outcome * radius; Codevoorbeeld 1: gebruik van de basis keywords. 21 Ronald van Aken is werkzaam bij Accenture Technology Solutions en specialiseert zich op het gebied van Java-, BPMen SOA-oplossingen. De syntax en scripteigenschappen JavaFX is een scripttaal die in de basis veel op Java lijkt, maar die ook veel extras biedt ten opzichte van Java. Wanneer je met JavaFX begint is het daarom goed om je open te stellen voor een nieuwe taal en niet teveel op bestaande Java-ervaring te leunen. Je zult snel merken dat JavaFX een hoop dingen net iets anders noemt en extra sleutelwoorden beschikbaar heeft. Persoonlijk viel mij op dat er veel aandacht is besteed aan het gebruik van s en de mogelijkheid van het gebruik van verkorte notaties, wat ervoor zorgt dat we met weinig code heel snel resultaten kunnen boeken. Een voorbeeld van hoe verkorte notaties kunnen worden toegepast wordt later in dit artikel in de paragraaf Animatie in JavaFX behandeld. Eerst zullen we een aantal basiseigenschappen van JavaFX-scripting bespreken. Een aantal belangrijke sleutelwoorden in JavaFX zijn: Bij JavaFX is het belangrijk om te realiseren dat alles als een wordt behandeld. Dit zorgt ervoor dat we zeer krachtige statements kunnen maken met relatief weinig code. Codevoorbeeld 2 toont het gebruik van s tijdens het declareren van variabelen. // Eenvoudige definitie van een variable met een tekstuele waarde var title = Example ; /** Definitie van een instantie Customer met daarin direct initialisatie van het attribuut name */ var customer = Customer{ name: Ronald ; /** Initialisatie doormiddel van toekenning via de waarde van een attribuut van een bestaand object */ var length = title.length(); // Initialisatie doormiddel van een sommatie van verschillende variabelen var width = {length + defaultwidth; // Initialisatie doormiddel van concattenatie van een tweetal Strings var name = {title{ with the length of {length; Codevoorbeeld 2: gebruik van s bij declaraties.
2 22 JavaFX: On the road... JavaFX biedt als taal meer aspecten dan we al kennen vanuit Java. Het concept van arrays keert in JavaFX in de vorm van sequences terug. Sequences kunnen worden gebruikt om verzamelingen te definiëren. Het gebruik van blokhaken definieert een sequence en, net als in Java, is het alleen toegestaan om types van hetzelfde soort in een sequence te plaatsen. Een mooie bijkomstigheid is dat s gebruikt kunnen worden in combinatie met sequences. Een voorbeeld hiervan is het definiëren van een sequence welke een subset is van een eerder gedefinieerde sequence zoals te zien is in Codevoorbeeld 3. Het voorbeeld resulteert in een subset van de verzameling subsetnumbers waarin alleen waarden worden geplaatst die groter zijn dan 3. De gebruikt n als variabele om te evalueren; vervolgens kunnen we de conditie specificeren waaraan moet worden voldaan. Let op dat het teken hier dus niet de semantiek heeft van or zoals we dat in Java kennen. // standaard sequeence declaratie var number = [1,2,3]; //Voeg alleen waarden toe aan de subset die groter zijn dan 3 var subsetnumbers = number [n n>3]; // controleer of i in range van 1 tot 10 valt; indien dat zo is vermenigvuldig dan met zichzelf var squares = for (i in [1..10]) i*i; Codevoorbeeld 3: definitie van sequences. Dezelfde principes kunnen worden gehanteerd bij niet-primitieve waarden. Je kunt ze bijvoorbeeld ook gebruiken wanneer je een sequence hebt met daarin objecten en waarbij criteria worden gedefinieerd voor één van de attributen van het object. Een voorbeeld hiervan zien we in Codevoorbeeld 4. public class Customer { public var name: String; public var address: String; public var age: Integer; override function tostring():string{ return {name and I am {age years old ; var customers = [Customer{name: Ronald, age: 25(Ja joh? ;) ), Customer{name: Klaas, age: 26, Customer{name: Jenny, age: 29]; var subsetcustomers = customers[ c c.age >= 26]; function run():void{ println(subsetcustomers); //* prints [ Klaas and I am 26 years old, Jenny and I am 29 years old ]*/ Codevoorbeeld 4: Voorbeeld van het vullen van een sequence met objecten op basis van een. Bij het gebruik van sequences zijn een aantal keywords toegevoegd die het mogelijk maken om de sequence te manipuleren. Om de inhoud te manipuleren hebben we insert en een delete statement ter beschikking. De volgende mogelijkheden zijn beschikbaar: Keyword Insert <value> into <sequence> Insert <value> into before <sequence>- [index expression] Insert <value> into after <sequence>[ index expression] Delete <sequence> Delete <sequence>[ index expression] Tabel 2. Effect Voegt een waarde aan het eind van de sequence toe. Voegt een waarde toe waar de positie wordt bepaald op Voegt een waarde toe waar de positie wordt bepaald op Verwijderd alle waardes in de sequence Verwijderd alle warden op Het gebruik van deze keywords wordt in Codevoorbeeld 5 verduidelijkt. var numbers = [1,2,3,4,5,6,7,8,9]; insert 13 into numbers; // Results [1,2,3,4,5,6,7,8,9,13] insert 13 before numbers[0]; // Results [13,1,2,3,4,5,6,7,8,9,13] insert 14 after numbers[0]; //Results [ 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13] delete numbers[0]; // Results [14,1,2,3,4,5,6,7,8,9,13] delete numbers; // Results [] Codevoorbeeld 5: gebruik van insert en delete bij sequences. Het gebruik van s bij de initialisatie van de sequence geeft ons de mogelijkheid om de sequence direct naar wens te kunnen initialiseren. In Codevoorbeeld 6 zien we de kracht van s in JavaFX dan ook goed naar voren komen. var number = [1,2,3]; var total = { var sum:integer = 0; for (n in number){ sum += n; sum; var text = Text { content: the sum is {total ; Codevoorbeeld 6: gebruik van s bij initialisatie. We zien dat variabele total zijn waarde krijgt vanuit een die we uitschrijven in een codeblok. We doorlopen de waarden van de sequence numbers en tellen deze op in de variabele sum. Vervolgens geven we aan dat de waarde van sum moet worden toegekend aan total. Het object Text dat we in bovenstaand voorbeeld gebruiken, dient om een tekstuele waarde in de applicatie weer te geven en is het equivalent van een label in visuele GUI toepassingen gemaakt met Swing, Delphi en of C#. Met het beschrijven van bovenstaande aspecten van de scripttaal hoop ik een beeld te hebben gegeven Java Magazine 5 November 2009
3 23 dat JavaFX als taal veel andere aspecten biedt dan we kennen vanuit Java. Grafische objecten in JavaFX Voordat we iets kunnen zeggen over animaties moeten we eerst de grafische architectuur van JavaFX uiteenzetten. In JavaFX worden grafische elementen geplaatst binnen een Scene object. Dit object is de container waarmee we een grafische hiërarchie binnen een JavaFX-applicatie kunnen opbouwen. Het Scene object bestaat uit branches en nodes, waar een branche 0 tot n nodes kan hebben en een node geen verdere vertakkingen heeft. Grafische manipulaties in een JavaFX-applicatie kunnen uitgevoerd worden op nodes binnen een branche. Het opbouwen van de nodes in een applicatie is weergegeven in Codevoorbeeld 6. Dit voorbeeld toont hoe een cirkel en een tekst node aangemaakt worden en hoe we deze in het scene object plaatsen van onze JavaFX-applicatie. Het Stage object is het beste te vergelijken met de root container van een applicatie (SwingContainer in Java). In dit specifieke geval bevat de Scene (de branche) een tweetal nodes (Text & Circle). width: 250 height: 80 scene: Scene { // scene is een branch met twee nodes content: [ Text { // Node 1 font : Font { size : 24 x: 10, y: 30 content: Application content, Circle { // Node 2 radius: 40; fill: Color.AQUA; ] Codevoorbeeld 7: definiëren van grafische hiërarchie in het scene object. Binnen JavaFX is een aparte package gedefinieerd met daarin verschillende grafische vormen die we out of the box kunnen gebruiken; daarnaast bestaat de mogelijkheid om polygonen te gebruiken waarmee we vervolgens zelf nieuwe vormen kunnen definiëren. Door middel van de standaard beschikbare functionaliteit zijn we in staat om gemakkelijk eenvoudige vormen in onze applicatie te gebruiken. Daarnaast kunnen we ook images en video bestanden in beperkte formaten integreren in JavaFX. In dit artikel wordt echter alleen gebruikgemaakt van de standaardvormen. Hoe we een vorm kunnen tekenen hebben we al gezien in het gebruik van het Circle object in Codevoorbeeld 7, het resultaat hiervan is te zien in afbeelding 1. Animatie in JavaFX Het toevoegen van code die visuele objecten kan animeren is eenvoudig te doen door middel van de beschikbare animation package. Wanneer we met 2D animaties aan de slag gaan, is het voornaamste om te definiëren hoe de animatie zich manifesteert binnen de dimensietijd. Hiervoor is het TimeLine object beschikbaar. Dit object stelt ons in staat om objecten op basis van tijd te manipuleren. Het TimeLine object bestaat uit een KeyFrames object dat op zijn beurt een of meerdere KeyFrame objecten bevat. Het KeyFrame object geeft een definitie van hoe lang iets moet duren en welke manipulatie uitgevoerd moet worden. Binnen het KeyFrame object moeten we een tweetal eigenschappen goed instellen. Ten eerste bepalen we het moment waarop een KeyFrame actief moet zijn in tijd, dit doen we met het attribuut time. De notatie die we voor dit attribuut gebruiken is een specifiek gebruik van de JavaFX Duration klasse welke wordt gebruikt om tijdindicaties te specificeren. Vervolgens moeten we ook definiëren wat de waarde moet zijn van een specifieke variabele op dat moment in tijd. Codevoorbeeld 8 laat zien hoe we een TimeFrame gebruiken om een textlabel 360 graden te laten roteren. De waarde van de hoek waarop de tekst wordt weergegeven, wordt tussen de twee tijdsmomenten opgehoogd door het TimeFrame object. Door de waarde angle via databinding te verbinden aan de eigenschap rotate van het tekstlabel wordt de hoek waarin de tekst is weergegeven automatisch aangepast. var angle = 0; var text = Text{ font : Font { size : 24 x: 10 y: 30 content: demo ; rotate: bind angle; Timeline { repeatcount: Timeline.INDEFINITE autoreverse: true keyframes: [ KeyFrame{time: 0s; values: [angle=>0], // startpoint KeyFrame{time: 6s; values: [angle=>360] // endpoint in timeframe ].play(); Codevoorbeeld 8: definiëren van een KeyFrame voor het animeren van objecten. In beperkte formaten kunnen we images en video s in JavaFX integreren. Afbeelding 1: resultaat van code voorbeeld 7. In JavaFX hoeven we het KeyFrame object niet expliciet te definiëren. We kunnen gebruik maken van een verkorte notatietechniek om de code compact en eenvoudiger te houden. In Codevoorbeeld
4 24 JavaFX: On the road... 9 zie je hoe we een animatie toevoegen aan onze simpele voorbeeld applicatie. var circle = Circle{ radius: 20; centerx: bind x; centery: 20; fill: LinearGradient { startx: 0.0, starty: 0.0, endx: 0.0, endy: 1.0, proportional: true stops: [ Stop {offset: 0.0 color: Color.BEIGE, Stop {offset: 1.0 color: Color.BROWN ]//Stops var x: Number; Timeline { keyframes: [ at (0s) {x => 0.0, Codevoorbeeld 9: toevoegen van animatie. def path = Path{ stroke: Color.BLACK strokewidth: 4 elements: [ MoveTo {x: 100 y: 100, ArcTo { x: 250 y: 250 radiusx: 50 radiusy: 50, MoveTo {x: 250 y: 250, ArcTo { x: 100 y: 100 radiusx: 50 radiusy: 50 ] function run(): Void { scene: Scene { width: 400 height: 300 content: [ path,circle ] animation.play(); Codevoorbeeld 10: gebruik van een Path object. Door het gebruik van grafische objecten kunnen we snel mooie grafische applicaties maken. Het voorbeeld laat de cirkel horizontaal bewegen. Dit wordt gerealiseerd door de toevoeging van de TimeLine. Binnen de TimeLine definiëren we de KeyFrames met daarin een tweetal KeyFrame objecten. Dit is in het voorbeeld niet direct zichtbaar, omdat we gebruikmaken van de verkorte notatie die ervoor zorgt dat het KeyFrame object impliciet aanwezig is. Voor elk KeyFrame moeten we een starttijd opgeven en in ons geval geven we voor het eerste KeyFrame een starttijd van 0 seconden op. Vervolgens geven we aan dat op tijdselement 0s de variabele x de waarde 0.0 heeft. In de volgende KeyFrame definiëren we dat op tijdsmoment 4s de variabele x de waarde moet hebben en door gebruik van het sleutelwoord tween het verloop naar deze waarde lineair geïnterpoleerd moet worden. Nu rest ons alleen nog de vraag hoe we de variabele x koppelen aan het attribuut centerx (die de positie op de x as bepaalt) van ons cirkelobject, zodat de cirkel een nieuwe positie krijgt. Dit doen we door de volgende code te gebruiken: centerx: bind x. Hierdoor wordt de waarde van attribuut centerx automatisch gesynchroniseerd met de variabele x wanneer deze van waarde wijzigt. In de behandelde voorbeelden was de animatie erg eenvoudig: het object maakte alleen een horizontale beweging. Meer geavanceerde animaties kunnen we definiëren door gebruik te maken van een Path en PathTransistion object. Dit laatste object zorgt ervoor dat je een grafisch object over een pad van punten kunt laten bewegen. Een Path object definieert een bepaald pad wat een specifiek object moet volgen. In ons volgende voorbeeld definiëren we een eenvoudige lijn die we tekenen door middel van het Path object. Binnen het Path object gebruiken we elements om het pad te definiëren, in dit geval maken we een eenvoudige cirkel. De code die we hiervoor nodig hebben zie je in Codevoorbeeld 10. Vervolgens kunnen we een PathTransistion object gebruiken om een ander object het gedefinieerde pad te laten volgen. Het PathTransistion.path attribuut kun je gemakkelijk initialiseren door het aanroepen van de utillity klasse: AnimationPath. createfrompath(path). Binnen de run functie wordt de animation.play() aangeroepen, de code van dit object (PathTransistion) is uitgeschreven in Codevoorbeeld 11. def circle = Circle { radius: 5 fill: Color.RED ; def animation = PathTransition { node: circle; path: AnimationPath.createFromPath(path) orientation: OrientationType.ORTHOGONAL_TO_TANGENT interpolate: Interpolator.LINEAR duration: 5s repeatcount: Timeline.INDEFINITE ; Codevoorbeeld 11: gebruik van PathTransistion object. Het gebruik van grafische objecten in JavaFX geeft ons elementaire bouwstenen waarmee we snel, mooie, grafische applicaties kunnen maken. Vooral door het feit dat het relatief eenvoudig is om in de code events aan de objecten te koppelen kunnen we al snel grafische objecten interactief maken. We zouden bijvoorbeeld een rolodex agenda kunnen maken met bewegende bladeren voor elke letter in het alfabet. Een mogelijke oplossing om dit te realiseren is door een rechthoek voor de bladzijde te definiëren en daarop alle contact gegevens te plaatsen. De rechthoek zal dan zodra een letter wordt geselecteerd worden bijgewerkt met de benodigde gegevens om vervolgens een rotatie te maken om zijn rechter- of linkerzijde, waarna vervolgens de gegevens zichtbaar zijn voor de gebruiker. Voorbeelden die soortgelijk gedrag manifesteren worden meegeleverd met de JavaFX SDK in Netbeans. Java Magazine 5 November 2009
5 25 Swing & JavaFX Momenteel zijn er geen specifieke objecten om user input af te handelen (denk hierbij aan formulieren etc). In de JavaFX API is alleen een TextBox en een Text (label) aanwezig waarmee het invoeren van eenvoudige user input in een JavaFX-applicatie mogelijk wordt. Het is wel mogelijk om een Swing container in JavaFX te gebruiken, echter komen we dan terecht in de complexiteit waar Swing berucht om is. Maar als we complexe gebruikersinteractie willen, is dit op dit moment de enige optie. Het wachten is op SUN om echte JavaFX controls toe te voegen aan het platform, zodat deze beter aansluiten bij de overige grafische objecten van de JavaFX API als vervanging voor het gebruik van de Swing API. Voor dit voorbeeld hebben we een Swing klasse ontwikkeld die er uitziet zoals in Afbeelding 2 is te zien. De volgende stap is om deze klasse te laden in het attribuut content van het Stage object van onze JavaFX-applicatie. Hier ontsaat echter een probleem, omdat de Swing klasse hiërarchie niet zomaar in JavaFX kan worden gebruikt. Wat er moet gebeuren, is dat we het Swing object in een container plaatsen die overerft van de klasse javafx.scene. Node. Dit realiseren we door de volgende statische methode aan te roepen: SwingComponent. wrap(finddialog);, waar de variabele finddialog een instantie is van de Swing klasse. De volledige code die nodig is om de dialoog in een JavaFX-applicatie te gebruiken zie je in Codevoorbeeld 12. Afbeelding 2. deze Swing klasses mogelijk maakt. Daarom heb ik ook in dit voorbeeld gekozen om een normale Java Swing klasse te gebruiken. Tot slot Naar aanleiding van dit deel van het artikel over JavaFX hoop ik, dat u als lezer kunt concluderen dat het definiëren en manipuleren van grafische objecten gemakkelijk en snel te realiseren is. Met name de script eigenschappen van JavaFX maken het mogelijk dat je snel en efficiënt de objecten kunt manipuleren. Het werken met deze scripttaal kan net iets meer gemak leveren dan de meer strikte Java-syntax; dit geldt zeker voor mensen die niet eerder hebben gewerkt met Java. Het wachten is op Sun om echte JavaFX controls toe te voegen aan het platform. // Instantiate the Swing component var finddialog = new Find(); // Wrap swing component in a compatible container for scene.content var finddialogcomp = SwingComponent.wrap(findDialog); function run():void { finddialogcomp.clip = Rectangle { width: finddialog.getwidth() height: finddialog.getheight() ; finddialog.setvisible(true); style: StageStyle.TRANSPARENT width: finddialog.getwidth() height: finddialog.getheight() scene: Scene { content:[ finddialogcomp ] Codevoorbeeld 12: Gebruik van bestaande Swing code in een JavaFX applicatie. Er is ook een speciale extensie in de package hiërarchie van JavaFX om ondersteuning te bieden voor Swing componenten zonder het wrappen zoals dat hierboven gebeurt. Helaas zijn er nog geen WYSIWYG tools die het visueel ontwikkelen met De diverse toevoegingen van verkorte notaties zorgen dat de code compact en meer overzichtelijk blijft. Het toepassen van grafische objecten in een JavaFX-applicatie is wat mij betreft laagdrempelig, al is het wel zo dat ik hier soms visuele ondersteuning mis. Ik vraag mij dan ook af of het voor ontwikkelaars niet gemakkelijker kan worden gemaakt. Vooral wanneer we echte complexe gebruikersinteractie gaan ontwikkelen kunnen WYSIWYG-tools veel toegevoegde waarde hebben. Deze tools helpen ons met het genereren van UI code en daardoor het behouden van de focus op het ontwikkelen van de uiteindelijke klantoplossing. Hier hebben concurrenten zoals Adobe zeker een voorsprong! In dit artikel maakten we vooralsnog gebruik van technieken om zelf grafische objecten aan te maken, in het volgende deel zullen we zien hoe de visie van JavaFX erin voorziet hoe grafische ontwerpers en software developers hand in hand kunnen samenwerken en de kracht van JavaFX samen optimaal kunnen benutten. «Referenties chrisoliver/category/f3 media/format.jsp
Informatica. JavaFX 11 R.M.M. Woudt
Informatica JavaFX 11 R.M.M. Woudt 2009 2010 R.M.M. Woudt Delfstrahuizen [email protected] Omslag: Haberdasher s problem 2003 R.M.M. Woudt In Haberdasher s problem gaat het erom een gelijkzijdige driehoek
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)
Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET
Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15
Vakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen [email protected] en [email protected]
Omschrijf bij ieder onderdeel van de methode de betekenis ervan. Java kent twee groepen van klassen die een GUI kunnen maken: awt en swing.
irkel (met Jpanel) ij de onderstaande opdracht behoort het bestand Panels: JPanels_1.java (map Panel) in de map irkel. pplicaties in Java hebben altijd een publieke klasse waarin een methode main voorkomt.
Tutorial 1, Delphi: Geldspraak
Tutorial 1, Delphi: Geldspraak Versie Datum Auteurs Opmerkingen 1 25-09-2001 Kees Hemerik (code) Gebaseerd op Delphi 5 Enterprise. Roel Vliegen (tekst) 2 17-03-2005 Kees Hemerik Aanpassingen: Delphi 7,
Core. JavaFX: Klaar om de wereld te veroveren? JavaFX wordt door Sun gepositioneerd als de
Core Sinds JavaOne is de spanning rondom JavaFX stevig opgebouwd. Het bleef lang onduidelijk wat we precies konden verwachten en wat JavaFX betekent voor Java ontwikkelaars. Met de 1.0 release voor de
Dynamiek met VO-Script
Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software [email protected] Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries
Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
Zelftest Programmeren in Java
Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test
Opdracht 7a. Applicatiebouw 2014/2015
Applicatiebouw 2014/2015 Opdracht 7a Inhoud Applicatiebouw op dag 7 College In het college wordt oa. overerving behandeld, waarmee je uit een bestaande klasse een nieuwe andere klasse kan maken. Ook zijn
Labo 2 Programmeren II
Labo 2 Programmeren II L. Schoofs K. van Assche Gebruik Visual Studio 2005 om een programma te ontwikkelen dat eenvoudige grafieken tekent. Deze opgave heb je vorig academiejaar reeds in Java geïmplementeerd.
Figuur 1 Application manager. Heb je in een voorgaande sessie al een eigen applicatie aangemaakt, dan kun je op deze dubbel klikken en openen.
Procesvisualisatie met InTouch Intouch is een SCADA pakket waarmee we een productieproces kunnen visualiseren en beheren. Het ontwikkelen van zo n applicatie gebeurt door het tekenen van objecten en of
Een unit test is geen integratie test. Niet het hele systeem, maar onderdelen van een systeem worden getest.
WAT IS EEN UNIT TEST? Een unit test is een test om de functionaliteit van stukken code te controleren. Een goede unit test waarborgt een consistente werking van een klein onderdeel (een unit ) van de broncode.
Lab Webdesign: Javascript 3 maart 2008
H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen
Sparse columns in SQL server 2008
Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : [email protected] www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG
HTML Graphics. Hans Roeyen V 3.0
HTML Graphics Hans Roeyen V 3.0 19 maart 2015 Inhoud 1. HTML5 Canvas... 3 1.1. Het Canvas element... 3 2. SVG Element... 9 2.1. SVG vergeleken met Canvas... 9 2.2. Een cirkel tekenen met SVG... 10 2.2.1.
Informatica: C# WPO 6
Informatica: C# WPO 6 1. Inhoud Timers, switch cases, combobox 2. Oefeningen Demo 1: Bounce Demo 2: Hex to decimal converter Demo 3: Debug oplossing demo 1 A: Count to 10 A: Biljarttafel A: Azerty to qwerty
NHibernate als ORM oplossing
NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een
8 Word Art Teksten. De documentatie van deze API is te lezen in Bijlage P: WordArt Documentatie.
8 Word Art Teksten De tbvectorfont library maakt gebruik van alle standaard functionaliteit die de browsers bieden. Naast deze standaard functionaliteit ziet Tingly Games graag ook uitgebreidere tekst
In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.
4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets
Variabelen en statements in ActionScript
Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer
Programmeren in Java les 3
4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een
Programmeren in Java 3
7 maart 2010 Deze les Zelf componenten maken Concurrency (multithreading): werken met threads levenscyclus van een thread starten tijdelijk onderbreken wachten stoppen Zelf componenten maken Je eigen component:
Een website maken met databasetoegang.
Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,
Programmeren: Visual Basic
PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Document Afbaking 01. VERSCHILLENDE PROGRAMMEERTALEN 02. PROGRAMMEER PAKKETTEN 03. GUI 03.1 GUI ELEMENTEN 03.2 GUI EIGENSCHAPPEN
Een eerste applicatie
Een eerste applicatie 2.1 Inleiding Programmeren in Visual Basic.NET doe je niet alleen door regels met code te schrijven. Je begint met het ontwerpen van een venster in de design mode met allerlei controls,
Monteren van een STOP MOTION filmpje ADOBE PREMIER Stap 1: Hoe start je een nieuw project.
Monteren van een STOP MOTION filmpje ADOBE PREMIER Stap 1: Hoe start je een nieuw project. Vooraleer we beginnen met de software te gebruiken is het beter om alle programma s die we niet nodig hebben af
Dieper in Visual Basic.Net
Visual Basic.NET Dieper in Visual Basic.Net 7.1 Inleiding Dit hoofdstuk is bedoeld om je wat handiger te maken in het programmeren in Visual Basic. Je leert geen nieuwe programmeervaardigheden, maar je
Lab Webdesign: Javascript 11 februari 2008
H2: BASISBEGRIPPEN In dit hoofdstuk zullen er enkele basisbegrippen worden behandelt PLAATSING VAN JAVASCRIPT-CODE DE SCRIPT-TAG De script-tag geeft aan dat er gebruik zal worden gemaakt van een scripttaal.
Syntax- (compile), runtime- en logische fouten Binaire operatoren
Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Programmeren in C# Interfaces. Hoofdstuk 23
Programmeren in C# Interfaces Hoofdstuk 23 Programmeren in C# 2 Gradaties overerving Klassieke overerving Iets functioneels uitbreiden Code duplicatie Niet teveel aanpassingen aan bestaande code Objecten
Informatica: C# WPO 6
Informatica: C# WPO 6 1. Inhoud Timers, switch cases, combobox 2. Oefeningen Demo 1: Bounce Demo 2: Hex to decimal converter Demo 3: Debug oplossing demo 1 A: Count to 10 A: Biljarttafel A: To reverse
Programmeren. Cursus Python
Programmeren Cursus Python Cursus Python Omschrijving In deze cursus leren de deelnemers te programmeren in de objectgeoriënteerde programmeertaal Python. Python is een taal die vaak wordt gebruikt voor
Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is
Secure Application Roles
Secure Application Roles Beheer de toegang tot de database 1. Inleiding Het realiseren van geautoriseerde toegang tot een database lijkt eenvoudig. Echter, vaak blijkt dat dezelfde combinatie van gebruikersnaam
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur
Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)
Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM
Tips & Tricks Eigen Widgets in CRM Eigen Widgets in CRM Introductie De WebUI van CRM 7.0 maakt het mogelijk om je eigen widgets te maken en deze in je eigen view te gebruiken. Dat kan door gebruik te maken
Hoofdstuk 16: Grafieken en diagrammen: hoe
Hoofdstuk 16: Grafieken en diagrammen: hoe 16.0 Inleiding Wanneer je de betekenis van een serie nummers in een presentatie wilt weergeven, zal je ondervinden dat een diagram de meest effectieve manier
Knowledgeable Referenceable Personable Accountable Scalable
Knowledgeable Referenceable Personable Accountable Scalable 1 WebForms en JavaBeans bij Essent Energie OGH presentatie 3 juli 2003 2 Agenda Inleiding Eenvoudige Java Bean in Web Forms Demo Meer complexe
Zelftest Inleiding Programmeren
Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze
Programmeren in Java 3
26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class
Tentamen Objectgeorienteerd Programmeren
Tentamen Objectgeorienteerd Programmeren 5082IMOP6Y maandag 16 november 2015 13:00 15:00 Schrijf je naam en studentnummer op de regel hieronder. Sla deze pagina niet om tot de surveillant vertelt dat het
Kleine cursus PHP5. Auteur: Raymond Moesker
Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven
6.2 VBA Syntax. Inleiding Visual Basic
6.2 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik op Maken Macro s en Code -
Lab Webdesign: Javascript 7 april 2008
H8: FORMULIEREN In dit hoofdstuk komt het "form"-object aan de orde: we zullen zien hoe we JavaScript kunnen gebruiken voor het manipuleren en valideren van de gegevens die een eindgebruiker invult in
Les 9: formulier controle met javascript.
Les 9: formulier controle met javascript. Javascript is erg veel gebruikt bij internet toepassingen. In tegenstelling tot PHP, wat een server side scripting is, is java client side scripting. Dwz, niet
Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11
Web building gevorderden: CSS & JavaScript Karel Nijs 2008/11 Webbuilding gevorderden les 3 JavaScript intro JavaScript invoegen JavaScript statements JavaScript popup berichten JavaScript functies JavaScript
Programmeerstructuren met App Inventor
Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement
OEFENINGEN PYTHON REEKS 4
Vraag 1: Introductie Tekenen OEFENINGEN PYTHON REEKS 4 Vanaf deze les gaan we gebruik maken van het pakket VPython om de objecten te tekenen en weer te geven. Om aan alle functies te kunnen die VPython
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Functies Vorige week bekeken we functies: def bereken(a, x): return a * (x
Maximo Tips and Tricks
Maximo Tips and Tricks Agenda Tips & Tricks 1. Scherm lay-out on demand 2. Koppelen Excel en Maximo 3. Foto s toevoegen aan records 4. Type ahead functie 5. Scripting voor calculaties en validaties 6.
Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.
Doel van deze lesbrief Deze lesbrief is bedoeld om je op de hoogte te brengen van de basisbegrippen die gangbaar zijn bij object georiënteerd programmeren (OOP). In deze lesbrief kom je korte codefragmenten
Website maker. Bezoek je domein om de Website maker in te stellen. De volgende melding zal zichtbaar zijn.
Aan de slag met de Bezoek je domein om de in te stellen. De volgende melding zal zichtbaar zijn. Volg de url 'administratie paneel' om in te loggen en de vervolgens in te stellen. Als eerst krijg je de
SYNTRA-WEST. Initiatiecursus JAVA. Deel
SYNTRA-WEST Initiatiecursus JAVA Deel Syntra-West Syntra-West (vroeger Vormingsinstituut West-Vlaanderen) Doorniksesteenweg 220 8500 Kortrijk Tel. 056/26.02.00 Fax 056/22.81.07 i Inhoudsopgave SYNTRA-WEST...
PRINT CV HANDLEIDING. OTYS Recruiting Technology
PRINT CV HANDLEIDING OTYS Recruiting Technology OTYS RECRUITING TECHNOLOGY WWW.OTYS.NL 29-8-2017 Versie 1.0 2 INHOUD 1 Introductie... 4 1.1 Over Print cv s... 4 1.2 Doel van deze instructie... 4 1.3 Opbouw
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal
Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is
Opdrachten herhalen public void tekenscherm (object o, PEA pea) { int x; x = 1; while ( x
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
9 Meer over datatypen
9 Meer over datatypen We hebben al gezien dat het gebruik van symbolische constanten de leesbaarheid van een programma kan verbeteren. Door een geschikte naam (identifier) voor een constante te definiëren,
Zelftest Java concepten
Zelftest Java concepten Document: n0838test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA CONCEPTEN Om de voorkennis nodig
GoogleMapsGoogleMapsGoogleMaps GoogleMapsGoogleMapsGoogleMaps GoogleMapsGoogleMapsGoogleMaps
Google Maps INHOUDSOPGAVE Inleiding.. 3 Een Google Map maken.. 4 Een eigen adres opgeven 7 Inzoomen op je eigenkaart. 8 Satellietbeeld op je eigenkaart. 10 Markers plaatsen. 13 Tekstballon plaatsen.. 15
INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13
INHOUDSOPGAVE Over de auteur, de illustrator en de technische redacteuren 13 Dankwoord 14 Inleiding 15 Waarom Python?... 16 Hoe je code leert schrijven... 16 Voor wie is dit boek... 17 Wat staat er in
Windows-applicatie. using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( )
Windows-applicatie using System.Windows.Forms; using System.Drawing; class HalloWin1 { static void Main ( ) { Form scherm; declaratie en toekenning van een variabele met type Form scherm = new Form( );
public Bier ( string N, double P, Brouwerij B) { Naam = N; AlcoholPerc = P; Brouwer = B;
Beschouw bijvoorbeeld de twee onderstaande klassen, waarvan de attributen en eigenschappen geannoteerd zijn met bijkomende XML-annotaties: using System ; using System. Xml ; using System. Xml. S e r i
6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.
6.3 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik in het groepsvak Macro op
FFO Webdesign 1e jaar theorietoets NL niveau4... Totaal aantal vragen: 40
FFOUCHIER 01/11/2018 FFO Webdesign 1e jaar theorietoets NL niveau4... Totaal aantal vragen: 40 De meeste juiste antwoorden: #22 Minste Juiste antwoorden: #30 1. Selecteer de juiste HTML-code voor het maken
De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.
Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl [email protected] KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren
OEFENINGEN PYTHON REEKS 5
Vraag 1: Interpoleren (vervolg) OEFENINGEN PYTHON REEKS 5 Bouw verder op je code van Reeks 3, vraag 4. Voeg vier constanten toe aan je code: X0 = 280, Y0 = 0, Z0 = 50 en SIZE = 8. a) Teken een kubus met
Scala. Korte introductie. Sylvia Stuurman
Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3
Building rich user interfaces in Java
Building rich user interfaces in Java Een introductie tot Oracle s JavaFX Spreker(s) : Datum : E-mail : Laurens Bossen en Paul van der Slot 20-03-2014 [email protected], [email protected]
Een stoomcursus door Edgar de Graaf, november 2006
Programmeren in Java Een stoomcursus door Edgar de Graaf, november 2006 Deze tekst geeft een zeer korte inleiding in de programmeertaal Java, uitgaande van kennis van de taal C++. Daarnaast bestudere men
eerste voorbeelden in Java
Beginselen van programmeren 2 eerste voorbeelden in Java vereisten: een editor: om programma in te tikken en te bewaren een Java compiler: zet ingetikte (bron-) programma om naar byte-code een Java Virtuele
Roc Zadkine. Javascript Car. Door: K.Bakker versie 1.0
Roc Zadkine Javascript Car Door: K.Bakker versie 1.0 mei 2016 distributielijst versie historie versie datum auteur Opmerkingen 1.0 2-2-2016 k.bakker inhoudsopgave 1. Project benodigdheden 3 2. Benodigdheden
X. Grafische elementen
X. Grafische elementen Om u te helpen bij grafische voorstellingen heeft java een aantal grafische afbeeldingen die u kunt gebruiken. Meestal worden zij in de methode paint(graphics g) geplaatst. Zij moeten
Een gelinkte lijst in C#
Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk
Nederlands WMS - SLD Profiel. Versie 1.0
Nederlands WMS - SLD Profiel Versie 1.0 Ravi: een profiel Ravi, netwerk voor geo-informatie Stichting Ravi is een netwerkorganisatie in het publieke domein en richt zich op de ruimtelijke ontwikkeling
Programmeren in C# Samenvatting van C#
Programmeren in C# Samenvatting van C# Proceduraal Programmeren Functies (O: void + return, I: referentie of value) Arrays, Lijsten Lussen (for, while, do while) Condities, if-else, switch Variabelen,
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Fun met webparts in ASP.Net
Fun met webparts in ASP.Net Deel 2:User controls en Webparts door Bert Dingemans, e-mail : [email protected] www : http:// 1 Inhoudsopgave FUN MET WEBPARTS IN ASP.NET... 1 DEEL 2:USER CONTROLS EN WEBPARTS...
Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele
Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd
Inhoud. VBA Excel 2010
Inhoud VBA Excel 2010 Inhoudsopgave 0. INSTELLINGEN EXCEL 2010... 9 1. WAT IS VISUAL BASIC FOR APPLICATIONS... 16 1.1. Achtergrond... 16 1.2. VBA is meer dan een macrotaal... 16 Case 1: Macro "Walk of
Mijn eerste ADO.NET applicatie
Hoofdstuk 2 Mijn eerste ADO.NET applicatie ADO staat voor ActiveX Database Objects. Dit is een verzameling klassen die onderdeel uitmaken van het.net framework, waarmee je verbinding kunt maken met een
Functioneel Ontwerp / Wireframes:
Functioneel Ontwerp / Wireframes: Het functioneel ontwerp van de ilands applicatie voor op de iphone is gebaseerd op het iphone Human Interface Guidelines handboek geschreven door Apple Inc 2007. Rounded-Rectangle
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
Websitecursus deel 3 JavaScript
Websitecursus deel 3 JavaScript A Eskwadraat WebCie [email protected] 12 oktober 2015 Introductie Twee weken geleden HTML Vorige week CSS Deze week JavaScript Javascript JavaScript (ook wel JS) is een
Genetische algoritmen in Java met JGAP
Genetische algoritmen in Java met JGAP Inleiding JGAP, uitgesproken als "jee-gep", is een framework voor het implementeren van genetische algoritmen en het gebruik ervan in Java. Genetische algoritmen
HOOfDsTuk 1 Objecten en klassen
HOOfDsTuk 1 Belangrijkste concepten in dit hoofdstuk: objecten klassen methodes parameters We springen meteen in het diepe en maken een begin met onze behandeling van objectgeorienteerd programmeren. Om
Java. Basissyllabus. Egon Pas
Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be [email protected] 1 Programmeren 1.1 Hoe werkt een
