4. Condities, booleans en de klasse DimensionKunnen we onze monitor in een schietschijf veranderen? Stel dat we een beeld willen hebben als hieronder: Hoe je concentrische cirkels tekent, zagen we in het vorige hoofdstuk. Maar in plaats van drawOval gaan we gebruik maken van de methode fillOval, die de getekende ellips ook gelijk opvult.
true en false: booleans Is de schijf donker, dan wordt de volgende licht.We zouden een variabele moeten hebben die die maar twee waarden kent: donker en licht. Voor dit soort situaties kent Java het type boolean. Zo'n boolean kan maar twee waarden bevatten, namelijk true en false. Kijk maar eens naar de volgende regels, waarin we ook nog eens kennismaken met de woorden if en else.
Ook bij ons schietschijf-programma is zo'n conditie heel handig. We kunnen deze als volgt uitschrijven:
Het is niet moeilijk te begrijpen dat g.setColor (Color.white) de kleur wit aanzet. Maar wat bedoelt het programma eigenlijk met if (wit)? Opnieuw zien we hier een boolean -- een variabele die maar twee waarden kan bevatten, namelijk true of false. Zo'n boolean gebruikt men in condities. Booleans kunnen als volgt worden gedeclareerd:
In ons programma gaan we telkens na het tekenen van een schijf de kleur "omdraaien". We zouden dat (wat omslachtig) zo kunnen doen:
Maar er is een veel kortere manier, namelijk zo: Het uitroepteken wordt uitgesproken als NOT en betekent dat de inhoud van wit feitelijk wordt omgekeerd. Zo betekenen de volgende statements precies hetzelfde:
De klasse DimensionDe afmetingen van onze applet worden normaliter vastgelegd in het html-bestand. Dat kan er bijvoorbeeld zo uitzien:
Maar in sommige gevallen zou het wel prettig zijn als we binnen de applet kunnen vaststellen hoe groot het venster feitelijk is. Hiervoor kunnen we gebruik maken van de klasse Dimension. We kunnen de afmetingen van het venster aldus in een object d van deze klasse laten stoppen:
Dit object d (dat je natuurlijk ook een andere naam kan geven) bevat twee velden, die width en height heten. Hiermee kunnen we de lengte en breedte van het appletvenster als volgt bepalen:
Meestal gebruiken we in deze cursus een appletvenster van 320 pixels breed en 240 pixels hoog. Een cirkel die precies in dit venster past moet dus een straal van 120 pixels hebben. Maar bij een appletvenster van 400 pixels hoog en 300 pixels breed wordt de straal 150 pixels. We kunnen dat in het programma zo vermelden:
Ten slotte volgt hier het volledige programma:
Opdracht 4.1 Schrijf een applet die - afhankelijk van de afmetingen - een van de volgende teksten schrijft (betreffende de afmetingen van het appletvenster
De breedte is groter dan de hoogte. Opdracht 4.2 Schrijf een applet met vier gelijke rechthoeken. De ruimte links, tussen en rechts van de rechthoeken is gelijk aan de breedte van elk van de rechthoeken. De ruimte onder, tussen en boven de rechthoeken is gelijk aan de hoogte van de rechthoeken. Dit moet zo blijven, onafhankelijk van de afmetingen van de applet.
(c) 2003-2008, Thomas J.H.Luif |