PowerPoint-presentatie

advertisement
Hoofdstuk 3:
Inleiding tot Java Applets
1
3.1.
INLEIDING
Applet
 is een JAVA-programma
 maakt deel uit van een webpagina
 wordt uitgevoerd door de JVM in een webbrowser of
wordt uitgevoerd in de appletviewer
 bijna geen bestandsverwerking mogelijk.
Reden: veiligheid.
2
3.2. DEMONSTRATIE APPLETS
Op de site http://java.sun.com
 JAVA 2 Platform Standard Edition downloaden
 demo’s bekijken en/of downloaden
Demos:
 TicTacToe Applet
 Drawtest Applet
 JAVA2D Applet
3
DEMO 1: TICTACTOE APPLET
4
DEMO 2: DRAWTEST APPLET
5
DEMO 3: JAVA2D
6
3.3 EIGEN APPLET MAKEN EN UITVOEREN:
DE VERSCHILLENDE STAPPEN
 De broncode van de applet intikken in een editor en
bewaren met extensie .java
 Compileren: broncode wordt vertaald naar bytecode.
Heeft als extensie .class
 Een HTML-pagina maken met een speciale code om de
JAVA-applet te starten.
 Webbrowser of appletviewer starten en het HTMLbestand openen
 De applet wordt automatisch uitgevoerd en het resultaat
zie je op het scherm.
7
WEBBROWSER EN APPLETVIEWER
Wanneer gebruiken we een appletviewer?
•
Testen van een applet
Wanneer gebruiken we een webbrowser?
•
Uitvoeren van een applet (gedownload of reeds
uitgetest)
8
3.3 SIMPEL JAVA-APPLET:
EEN TEKST WEERGEVEN
We zullen zelf een applet creëren
 We willen dat de tekst
Welcome to JAVA Programming !
wordt weergegeven op het scherm.
We zullen de broncode en de HTML bespreken
9
Inleidend commentaar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Fig. 3.6: WelcomeApplet.java
// Een eerste applet in Java.
HET JAVA PLATFORM
// Java packages
import java.awt.Graphics;
import javax.swing.JApplet;
public class WelcomeApplet
Hello.class
{
// importeert klasse Graphics
// importeert klasse JApplet
extends
Importeren van de nodige
JApplet
packages
// tekent tekst op de achtergrond van de applet
public void paint( Graphics g )
{
// oproepen van de geërfde methode paint
super.paint( g );
De applet-klasse,
met
de methode
10daarin
en y-coördinaat
20 paint()
// tekent een String op x-coördinaat
g.drawString( "Welcome to Java Programming!", 10, 20 );
}
}
// einde methode paint
// einde klasse WelcomeApplet
10
INLEIDEND COMMENTAAR
1 // Fig. 3.6: WelcomeApplet.java
2 // Een eerste applet in Java.
 Commentaar
• Naam van de broncode
• Beschrijving van de applet
11
IMPORTEREN VAN PACKAGES
5 import java.awt.Graphics;
// importeert klasse Graphics
6 import javax.swing.JApplet;
// importeert klasse JApplet
 De import-statement geeft de compiler de
opdracht de applet toegang te geven tot een
klasse van een package
• Wanneer je een applet maakt, importeer de
klasse JApplet (package javax.swing)
• importeer de klasse Graphics (package
java.awt).
 Kan lijnen, rechthoeken, ovalen en tekst tekenen
12
DE APPLET-KLASSE
8
public class WelcomeApplet extends JApplet
9
10
11
12
13
14
15
16
17
18
19
20
21
{
// tekent tekst op de achtergrond van de applet
public void paint( Graphics g )
{
// oproepen van de geërfde methode paint
super.paint( g );
// tekent een String op x-coördinaat 10 en y-coördinaat 20
g.drawString( "Welcome to Java Programming!", 10, 20 );
}
}
// einde methode paint
// einde klasse WelcomeApplet
De Klasse WelcomeApplet bestaat uit
 Kop (header)
8
public class WelcomeApplet extends JApplet
 Body
 Van openingsaccolade tot en met sluitingsaccolade
 In de body staat methode paint
13
KOP (HEADER) VAN APPLET-KLASSE
Applets hebben minstens één klasse door de
programmeur gedefinieerd (= user-defined class)
 We beginnen niet vanaf nul
• Stukken van een bestaande klasse gebruiken.
• Overerving: creëer nieuwe klassen op basis
van bestaande
8 public class WelcomeApplet extends JApplet
14
KOP (HEADER) VAN APPLET-KLASSE
8 public class WelcomeApplet extends JApplet
 Keyword class:
• we definiëren de klasse WelcomeApplet
 Keyword extends:
• De klasse WelcomeApplet erft de data en de
methoden van JApplet
 JApplet : superklasse (basisklasse)
 WelcomeApplet : subklasse (afgeleide klasse)
15
KOP (HEADER) VAN APPLET-KLASSE
8 public class WelcomeApplet extends JApplet
 Klasse JApplet betekent voor ons
• Iemand anders heeft gedefinieerd “wat het betekent
om een applet te zijn"
 Applets hebben meer dan 200 methodes nodig!
• extends JApplet
 We erven methodes; we dienen ze niet allemaal
zelf te definiëren
• We dienen niet elk detail van de klasse JApplet te
kennen.
16
KOP (HEADER) VAN APPLET-KLASSE
8 public class WelcomeApplet extends JApplet
 Keyword public:
• WelcomeApplet is beschikbaar voor alle andere
objecten, van welke packages ze ook deel uitmaken.
• De appletviewer of browser creëert een object
van de klasse WelcomeApplet
 De klasse moet public zijn
 Bestand kan maar één public klasse hebben
 De bestandsnaam = public klassenaam
17
KOP (HEADER) VAN APPLET-KLASSE
8 public class WelcomeApplet extends JApplet
 Onze klasse erft onder andere de methoden paint,
init en start van JApplet
• By default: init en start hebben lege body’s.
• We overschrijven enkel de methode(s) die we nodig
hebben. Wij overschrijven paint in onze klasse.
• Worden alle drie automatisch opgeroepen
18
BODY VAN DE APPLET-KLASSE:
METHODE PAINT()
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class WelcomeApplet extends JApplet
{
// tekent tekst op de achtergrond van de applet
public void paint( Graphics g )
{
// oproepen van de geërfde methode paint
super.paint( g );
// tekent een String op x-coördinaat 10 en y-coördinaat 20
g.drawString( "Welcome to Java Programming!", 10, 20 );
}
}
// einde methode paint
// einde klasse WelcomeApplet
 In de methode paint() staan altijd opdrachten om
iets op het scherm te zetten, te ‘tekenen’.
 De inhoud van paint(): zelf bepalen
 kan tekst zijn, maar ook figuren.
19
KOP (HEADER) VAN METHODE PAINT()
11
public void paint( Graphics g )
 In de kop staat de naam van de methode
• in ons geval paint
 voorafgegaan door de keywords public void
 door public kan appletviewer of browser de
methode paint oproepen.
 void: de methode geeft geen resultaat terug,
wanneer de methode paint is uitgevoerd.
20
KOP (HEADER) VAN METHODE PAINT()
11
public void paint( Graphics g )
 Na de naam van de methode staan ronde haakjes
= parameterlijst
• in de parameterlijst ontvangt de methode data,
die hij nodig heeft om zijn taak te kunnen uitvoeren.
 paint ontvangt automatisch de parameter,
nl. een referentie naar een object van Graphics.
 het object is het uitvoerscherm waar de
tekst zal terechtkomen.
21
BODY VAN DE APPLET-KLASSE:
METHODE PAINT()
12
13
14
15
16
17
18
19
{
// oproepen van de geërfde methode paint
super.paint( g );
// tekent een String op x-coördinaat 10 en y-coördinaat 20
g.drawString( "Welcome to Java Programming!", 10, 20 );
}
// einde method paint
herhaling:
 tussen beide accolades kun je zoveel JAVA-opdrachten
zetten als je wilt.
 een opdracht in JAVA = statement
 elke statement eindigt op ;
22
BODY VAN DE APPLET-KLASSE:
METHODE PAINT()
14
super.paint( g );
 Methode paint van de superklasse JApplet wordt opgeroepen.
17 g.drawString( "Welcome to Java Programming!", 10, 20 );
 Methode drawString (van klasse Graphics)
 De gegevens tussen de haakjes = argumenten
• eerste argument: String tekenen
• tweede argument: x-coördinaat
• derde argument: y-coördinaat
23
BEELDSCHERM
Beeldscherm is opgebouwd uit kleine puntjes,
zogenaamde pixels.
17 g.drawString( "Welcome to Java Programming!", 10, 20 );
x
(0, 0)
(10, 20)
y
24
HTML
1
2
3
4
<html>
<applet code = "WelcomeApplet.class" width = "300" height = "40">
</applet>
</html>
 Bewaren met extensie .html (WelcomeApplet.html)
• naam vrij te kiezen
• bewaren in dezelfde directory als de applet
 HTML codes (tags)
• komen meestal 2 keer voor
• begint met < en eindigt met >
• niet case-sensitive
25
HTML
1
2
3
4
<html>
<applet code = "WelcomeApplet.class" width = "300" height = "40">
</applet>
</html>
 Lijn 1 en 4: begin en einde van het HTML-bestand
 Lijn 2 en 3: speciale tags voor JAVA applets
• appletviewer begrijpt enkel deze tags
• <APPLET> heeft drie attributen:
1. De applet die uitgevoerd dient te worden
2/3. Grootte van het scherm
26
3.4 VOORBEELD 2
 We willen dat de tekst
Welcome to
JAVA Programming !
wordt weergegeven op het scherm.
We zullen de broncode en de HTML bespreken
27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
28
19
20
21
22
Inleidend
// Fig. 3.9: WelcomeApplet2.java
// Geeft meerdere strings weer in een applet.
// Java packages
import java.awt.Graphics;
import javax.swing.JApplet;
//
HET JAVA PLATFORM
//
1
2
3
4
commentaar
importeert
klasse Graphics
Importeren
van de
importeert klasse JApplet
packages
nodige
public class WelcomeApplet2 extends JApplet
{
// tekent tekst op de achtergrond van de applet
public void paint( Graphics g )
{
De applet-klasse, met
// oproepen van de geërfde methode paint
daarin de methode paint()
super.paint( g );
// tekent strings op verschillende locaties
g.drawString( "Welcome to", 25, 25 );
g.drawString( "Java Programming!", 25, 40 );
}
}
// einde methode paint
// einde klasse WelcomeApplet2
<html>
<applet code = "WelcomeApplet2.class" width = "300" height = "60">
</applet>
</html>
28
METHODE drawString()
16
17
18
// tekent strings op verschillende locaties
g.drawString( "Welcome to", 25, 25 );
g.drawString( "Java Programming!", 25, 40 );
(0, 0)
(25, 25)
(25, 40)
29
VOORBEELD 3
 We wensen twee lijnen en een tekst weer te geven
op het scherm
Welcome to JAVA Programming !
We zullen de broncode bespreken
30
Inleidend commentaar
1 // Fig. 3.11: WelcomeLines.java
2 // Geeft tekst en lijnen weer in een applet
3
4 // Java packages
5 import java.awt.Graphics;
// importeert klasse Graphics
6 import javax.swing.JApplet; // importeert klasse JApplet
Importeren van de nodige
7
8 public class WelcomeLines extends JApplet
packages
9 {
10
// tekent 2 lijnen en tekst op de achtergrond van de applet
11
public void paint( Graphics g )
12
{
13
// oproepen van de geërfde methode paint
14
super.paint( g );
De applet-klasse, met
15
de naar
methode
16
// tekent een horizontale lijn vandaarin
(15, 10)
(210, paint()
10)
17
g.drawLine( 15, 10, 210, 10 );
18
19
// tekent een horizontale lijn van (15, 30) naar (210, 30)
20
g.drawLine( 15, 30, 210, 30 );
21
22
// tekent een String, tussen de lijnen, op positie (25, 25)
23
g.drawString( "Welcome to Java Programming!", 25, 25 );
24
25
} // einde methode paint
26
27 } // einde klasse WelcomeLines
HET JAVA PLATFORM
31
METHODE drawLine
16
17
18
19
20
// tekent een horizontale lijn van (15, 10) naar (210, 10)
g.drawLine( 15, 10, 210, 10 );
// tekent een horizontale lijn van (15, 30) naar (210, 30)
g.drawLine( 15, 30, 210, 30 );
 Methode drawLine van de klasse Graphics
• 4 argumenten:
 x en y coördinaat van beginpunt
 x en y coördinaat van eindpunt
32
METHODE drawLine
18
19
20
21
22
// tekent een horizontale lijn van (15, 10) naar (210, 10)
g.drawLine( 15, 10, 210, 10 );
// tekent een horizontale lijn van (15, 30) naar (210, 30)
g.drawLine( 15, 30, 210, 30 );
(15, 10)
(15, 30)
(210,10)
(210, 30)
33
3.5 VOORBEELD 4
 We wensen dat de gebruiker twee decimale getallen
ingeeft.
 De som wordt weergegeven op het scherm.
We zullen de broncode en de HTML bespreken
34
Inleidend commentaar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Fig. 3.13: AdditionApplet.java
// Telt twee decimale cijfers op en geeft het resultaat weer.
HET
JAVA
PLATFORM
import
java.awt.Graphics;
// importeert
// Java packages
import javax.swing.*;
klasse Graphics
// importeert package javax.swing
Importeren van de nodige
extends
JApplet
packages
public class AdditionApplet
{
private double sum; // som van de twee ingegeven waarden
// initialisatie van de applet: waarden worden ingegeven
public void init()
De applet-klasse, met
{
Methode init()
daarin
de gebruiker
methodes init()
String firstNumber; //1ste string,ingegeven
door
String secondNumber;//2de string ,ingegeven
door
gebruiker
en paint()
double number1;
double number2;
// eerste getal
// tweede getal
// eerste getal wordt aan de gebruiker gevraagd
firstNumber = JOptionPane.showInputDialog(
"Enter first floating-point value" );
// het tweede getal wordt aan de gebruiker gevraagd
secondNumber = JOptionPane.showInputDialog(
"Enter second floating-point value" );
// converteert getallen van type String naar type double
number1 = Double.parseDouble( firstNumber );
number2 = Double.parseDouble( secondNumber );
35
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// het optellen van de ingegeven waarden
sum = number1 + number2;
HET JAVA PLATFORM
} // einde init methode
// het resultaat, wordt in een rechthoek, weergegeven
public void paint( Graphics g )
Methode paint()
{
// oproepen van de geërfde methode paint
super.paint( g );
// tekent een rechthoek beginnend op pos. (15, 10)
// 270 pixels breed en 20 pixels hoog
g.drawRect( 15, 10, 270, 20 );
// het resultaat (als String) wordt weergegeven op pos.(25, 25)
g.drawString( "The sum is " + sum, 25, 25 );
}
}
1
2
3
4
// einde methode paint
// einde klasse AdditionApplet
<html>
<applet code = "WelcomeLines.class" width = "300" height = "40">
</applet>
</html>
36
UITVOER
37
INLEIDEND COMMENTAAR
1 // Fig. 3.13: AdditionApplet.java
2 // Telt twee decimale cijfers op en geeft het resultaat weer.
 Commentaar
• Naam van de broncode
• Beschrijving van de applet
38
IMPORTEREN VAN PACKAGES
4 // Java packages
5 import java.awt.Graphics; //importeert klasse Graphics
6 import javax.swing.*; // importeert package javax.swing
 Lijn 5: importeer de klasse Graphics (package java.awt).
 Lijn 6: importeer elke klasse van de package javax.swing.
• M.a.w. we geven de opdracht aan de compiler de applet toegang
te geven tot elke klasse van de package javax.swing.
• dit wordt gedaan met de asterisk (*)
• bevat JApplet en JOptionPane
• * betekent niet: compiler laadt elke klasse
– Compiler laadt enkel de klassen die worden gebruikt
39
DE APPLET-KLASSE
8 public class AdditionApplet extends JApplet
9 {
private double sum; // som van de twee ingegeven waarden
10
11
// initialisatie van de applet: waarden worden ingegeven
12
public void init()
13
{
…
35
} // einde methode init
36
37
// het resultaat, wordt in een rechthoek, weergegeven
38
public void paint( Graphics g )
39
{
…
50
} // einde methode paint
51
52 } // einde klasse AdditionApplet
De Klasse AdditionApplet bestaat uit
 Kop (header)
8 public class AdditionApplet extends JApplet
 Body


Van openingsaccolade tot en met sluitingsaccolade
In de body staan de methodes init en paint
40
KOP (HEADER) VAN APPLET-KLASSE
8 public class AdditionApplet extends JApplet
Applets heeft minstens één klasse door de
programmeur gedefinieerd (= user-defined class)
 Klasse AdditionApplet erft van JApplet
 AdditionApplet erft de methodes paint, init en start van
JApplet.
 Als de browser of appletviewer de applet uitvoert, dan roept
ze de methode init 1 keer op.
 De volgorde van oproepen is steeds: init, start en paint
41
BODY VAN DE APPLET-KLASSE
9
10
11
12
13
private double sum;// som van de twee ingegeven waarden
// initialisatie van de applet: waarden worden ingegeven
public void init()
{
…
} // einde methode init
35
36
37
38
39
50
51
52
// het resultaat, wordt in een rechthoek, weergegeven
public void paint( Graphics g )
{
…
} // einde methode paint
}
// einde klasse AdditionApplet
 De body bestaat uit private double sum; en de
methodes init en paint.
42
DECLARATIE VAN ATTRIBUUT-VARIABELE
9 private double sum;
// som vd twee ingegeven waarden
 Is een declaratie van een attribuut-variabele
 sum is een attribuut-variabele
• wordt private gedeclareerd in de body van een
klasse, niet in een methode.
• private attribuut-variabelen kunnen overal in de
klasse gebruikt worden, dus ook in de methoden
van deze klasse. NIET buiten de klasse!!!
 Variabelen gedeclareerd in methodes zijn
lokale variabelen.
 Kunnen enkel gebruikt worden in de body
van de methode
• krijgt een defaultwaarde (hier 0.0)
43
PRIMITIEVE TYPEN
9 private double sum;
// som vd twee ingegeven waarden
 int  gehele getallen (hoofdstuk 2)
 float, double  decimale getallen
 int, float en double zijn primitieve typen.
• float heeft een nauwkeurigheid van 6 tot 7
cijfers.
• double heeft een nauwkeurigheid van
15 cijfers.
• een double neemt meer plaats in het
geheugen dan een float.
44
METHODE INIT()
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// initialisatie van de applet: waarden worden ingegeven
public void init()
{
String firstNumber; //1ste string,ingegeven door gebruiker
String secondNumber;//2de string ,ingegeven door gebruiker
double number1;
double number2;
// eerste getal
// tweede getal
// eerste getal wordt aan de gebruiker gevraagd
firstNumber = JOptionPane.showInputDialog(
"Enter first floating-point value" );
// het tweede getal wordt aan de gebruiker gevraagd
secondNumber = JOptionPane.showInputDialog(
"Enter second floating-point value" );
// converteert getallen van type String naar type double
number1 = Double.parseDouble( firstNumber );
number2 = Double.parseDouble( secondNumber );
// het optellen van de ingegeven waarden
sum = number1 + number2;
}
 methode init zorgt voor de initialisatie van de applet
 M.a.w. init voert werkzaamheden uit die nodig zijn
voordat het eigenlijke werk van de applet kan beginnen.
45
KOP (HEADER) VAN METHODE INIT()
12
public void init()
 In de kop staat de naam van de methode
• in ons geval init
 voorafgegaan door de keywords public void
• door public kan appletviewer of browser de
methode init oproepen.
• void: de methode heeft geen resultaat terug,
wanneer de methode init is uitgevoerd.
 De parameterlijst is leeg: init heeft niks nodig om
zijn taak te kunnen uitvoeren.
46
BODY VAN DE METHODE INIT()
13 {
14
String firstNumber; //1ste string,ingegeven door gebruiker
15
String secondNumber;//2de string ,ingegeven door gebruiker
17
18
double number1;
double number2;
// eerste getal
// tweede getal
 Declaratie van 4 lokale variabelen:
• 2 lokale string variabelen
• 2 lokale variabelen van het type double
 deze variabelen krijgen geen defaultwaarde
47
BODY VAN DE METHODE INIT()
13 { {
15
16
14
String firstNumber; //1ste string,ingegeven door gebruiker
17
15
String secondNumber;//2de string ,ingegeven door gebruiker
18
double number1;
// eerste getal
19
17
double number1;
number2;
// eerste
tweede getal
18
double number2;
// tweede getal
 We maken een onderscheid tussen
• Referentie-variabelen (= referenties)
 firstNumber en secondNumber zijn
referenties
• primitieve data typen variabelen (=
variabelen)
 number1 en number2 zijn variabelen
48
REFERENTIES / VARIABELEN
 referenties
• verwijzen naar een object (bevatten het adres waar
het object in het geheugen zich bevindt)
 objecten kunnen data en methodes bevatten
 variabelen
• kunnen slechts data (1 waarde) bevatten
 afspraak:
• referenties en variabelen beginnen met een
kleine letter
49
BODY VAN DE METHODE INIT()
20
21
22

// eerste getal wordt aan de gebruiker gevraagd
firstNumber = JOptionPane.showInputDialog(
"Enter first floating-point value" );
Methode JOptionPane.showInputDialog

toont de dialoogbox en leest een string in
Inleesresultaat van showInputDialog toekennen
aan firstNumber

Toekenningsstatement
 = binaire operator - heeft twee operanden
 Rechterlid wordt geëvalueerd en toegekend aan
variabele in het linkerlid
 Lees als: firstNumber krijgt de waarde van
JOptionPane.showInputDialog( "Enter floatingpoint value " )

50
BODY VAN DE METHODE INIT()
24
25
26
// het tweede getal wordt aan de gebruiker gevraagd
secondNumber = JOptionPane.showInputDialog(
"Enter second floating-point value" );
Een tweede decimaal getal wordt aan de gebruiker
gevraagd.

51
BODY VAN DE METHODE INIT()
28
29
30

// converteert getallen van type String naar type double
number1 = Double.parseDouble( firstNumber );
number2 = Double.parseDouble( secondNumber );
Methode Double.parseDouble
Converteert String argument in een double
(type double)


Klasse Double in package java.lang
double teruggegeven door
Double.parseDouble, wordt toegekend aan de
variabele number1 (lijn 30)

Herinner u dat number1 als double werd
gedeclareerd

52
BODY VAN DE METHODE INIT()
32
33
34
35

// het optellen van de ingegeven waarden
sum = number1 + number2;
}
Toekenningsstatement
Berekent de som van number1 en number2
(rechterzijde)

Gebruikt de toekenningsoperator = om het
resultaat in de variabele sum te stoppen



Lees als: sum krijgt de waarde van
number1 + number2
number1 en number2 zijn operanden
53
METHODE PAINT()
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// het resultaat, wordt in een vierkant, weergegeven
public void paint( Graphics g )
{
// oproepen van de geërfde methode paint
super.paint( g );
// tekent een vierkant beginnend op pos. (15, 10)
// 270 pixels breed en 20 pixels hoog
g.drawRect( 15, 10, 270, 20 );
// het resultaat (als String) wordt weergegeven op pos.(25, 25)
g.drawString( "The sum is " + sum, 25, 25 );
}
// einde methode paint
De methode init werd uitgevoerd. De browser
of appletviewer roept de methode start van de
superklasse JApplet op (bevat lege body).
Vervolgens wordt de methode paint
opgeroepen.

54
METHODE PAINT()
37
38
// het resultaat, wordt in een rechthoek, weergegeven
public void paint( Graphics g )
paint ontvangt een referentie g. Referentie g
verwijst naar een object van Graphics.

De statements in paint gebruiken g om
boodschappen naar het Graphics object te
kunnen sturen:

45
48
g.drawRect( 15, 10, 270, 20 );
g.drawString( "The sum is " + sum, 25, 25 );
55
METHODE PAINT()
43
44
45
// tekent een vierkant beginnend op pos. (15, 10)
// 270 pixels breed en 20 pixels hoog
g.drawRect( 15, 10, 270, 20 );
 Methode drawRect (van klasse Graphics)
 De gegevens tussen de haakjes = argumenten
 eerste en tweede argument geven de plaats aan
(15, 10)
waar de linker bovenhoek van de rechthoek moet
komen
 derde argument: breedte
 vierde argument: hoogte
x
y
(15+270,10+20)
56
METHODE PAINT()
47
48
// het resultaat (als String) wordt weergegeven op pos.(25, 25)
g.drawString( "The sum is " + sum, 25, 25 );
Methode drawString (van klasse Graphics)
 + zorgt voor de concatenatie van 2 strings:
The sum is en sum (geconverteerd naar een
string).
 De geconcateneerde string wordt weergegeven
op het scherm op positie (25,25).

57
ATTRIBUUT-VARIABELEN EN
LOKALE VARIABELEN
• De waarde die werd toegekend aan sum in init beelden
we af in paint. We hebben sum gebruikt in init en paint.
Vandaar dat we sum als een attribuut-variabele hebben
gedeclareerd.
• number1 gebruiken we enkel in de methode init. De
waarde van number1 hadden we in paint niet nodig.
Vandaar dat number1 als een lokale variabele werd
gedeclareerd.
• Iedere keer als de methode opnieuw wordt uitgevoerd,
worden de lokale variabelen opnieuw gemaakt en aan
het eind weer weggegooid.
58
Oefeningen
Hoofdstuk 3
59
WAT IS DE UITVOER VAN:

g.drawString( "Welcome to", 25, 25 );
g.drawString( "Java Programming!", 25, 25 );

g.drawString( "Welcome to", 25, 25 );
g.drawString( "Java Programming!", 25, 30 );
60
OPGAVEN


Vraag de nettoprijs van een artikel (in euro)
en de BTW (%). Geef de brutoprijs weer op
het scherm.
Lees de straal van een cirkel in. Druk de
omtrek van de cirkel af (omtrek = 2r).
Gebruik de constante Math.PI voor de
waarde van . De klasse Math behoort tot
de package java.lang, dus we hoeven deze
klasse niet te importeren.
61
Download