1 / 61

Hoofdstuk 3: Inleiding tot Java Applets

Hoofdstuk 3: Inleiding tot Java Applets. 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.

anisa
Download Presentation

Hoofdstuk 3: Inleiding tot Java Applets

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hoofdstuk 3: Inleiding tot Java Applets

  2. 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.

  3. 3.2. DEMONSTRATIE APPLETS Op de site http://java.sun.com  JAVA 2 Platform Standard Edition downloaden  demos bekijken en/of downloaden Demos:  TicTacToe Applet  Drawtest Applet  JAVA2D Applet

  4. DEMO 1: TICTACTOE APPLET

  5.      DEMO 2: DRAWTEST APPLET

  6. DEMO 3: JAVA2D

  7. 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 HTML-bestand openen • De applet wordt automatisch uitgevoerd en het resultaat zie je op het scherm.

  8. WEBBROWSER EN APPLETVIEWER • Wanneer gebruiken we een appletviewer? • Wanneer gebruiken we een webbrowser? • Testen van een applet • Uitvoeren van een applet (gedownload of reeds uitgetest)

  9. 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

  10. Inleidend commentaar Importeren van de nodige packages De applet-klasse, met daarin de methode paint() 1 // Fig. 3.6: WelcomeApplet.java 2 // Een eerste applet in Java. 3 4 // Java core packages 5 import java.awt.Graphics; // importeert klasse Graphics 6 7 // Java extension packages 8 import javax.swing.JApplet; // importeert klasse JApplet 9 10 public class WelcomeApplet extends JApplet 11 { 12 // tekent tekst op de achtergrond van de applet 13 public void paint( Graphics g ) 14 { 15 // oproepen van de geërfde methode paint 16 super.paint( g ); 17 18 // tekent een String op x-coördinaat 10 en y-coördinaat 20 19 g.drawString( "Welcome to Java Programming!", 10, 20 ); 20 21 } // end method paint 22 23 } // end class WelcomeApplet HET JAVA PLATFORM Hello.class

  11. // Fig. 3.6: WelcomeApplet.java • 2 // Een eerste applet in Java. INLEIDEND COMMENTAAR • Commentaar • Naam van de broncode • Beschrijving van de applet

  12. 5 import java.awt.Graphics; // importeert klasse Graphics 8 import javax.swing.JApplet; // importeert klasseJApplet IMPORTEREN VAN PACKAGES • 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

  13. DE APPLET-KLASSE 10 public class WelcomeApplet extends JApplet 10 public class WelcomeApplet extends JApplet 11 { 12 // tekent tekst op de achtergrond van de applet 13 public void paint( Graphics g ) 14 { 15 // oproepen van de geërfde methode paint 16 super.paint( g ); 17 18 // tekent een String op x-coördinaat 10 en y-coördinaat 20 19 g.drawString( "Welcome to Java Programming!", 10, 20 ); 20 21 } // end method paint 22 23 } // end class WelcomeApplet • De Klasse WelcomeApplet bestaat uit • Kop (header) • Body • Van openingsaccolade tot en met sluitingsaccolade • In de body staat methode paint

  14. 10 public class WelcomeApplet extendsJApplet 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

  15. 10 public class WelcomeApplet extendsJApplet KOP (HEADER) VAN APPLET-KLASSE • 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)

  16. 10 public class WelcomeApplet extendsJApplet KOP (HEADER) VAN APPLET-KLASSE • 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 elke detail van de klasse JApplet te kennen.

  17. 10 public class WelcomeApplet extendsJApplet KOP (HEADER) VAN APPLET-KLASSE • 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 = publicklassenaam

  18. 10 public class WelcomeApplet extendsJApplet KOP (HEADER) VAN APPLET-KLASSE • Onze klasse erft de methoden paint, init en start • van JApplet • By default: paint, init en start hebben lege body’s. • We overschrijven enkel de methode(s) die we nodig • hebben. Wij overschrijven paint in onze klasse. • Worden alledrie automatisch opgeroepen

  19. 10 { 11 12 // tekent tekst op de achtergrond van de applet 13 public void paint( Graphics g ) 14 { 15 // oproepen van de geërfde methode paint 16 super.paint( g ); 17 18 // tekent een String op x-coördinaat 10 en y-coördinaat 20 19 g.drawString( "Welcome to Java Programming!", 10, 20 ); 20 21 } // end method paint 22 23 }// end class WelcomeApplet BODY VAN DE APPLET-KLASSE: METHODE PAINT() • 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.

  20. 13 public void paint( Graphics g ) KOP (HEADER) VAN METHODE PAINT() • 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 demethode paint oproepen. • void: de methode geeft geen resultaat terug, • wanneer de methode paint is uitgevoerd.

  21. 13 public void paint( Graphics g ) KOP (HEADER) VAN METHODE PAINT() • 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 parameters, • nl. een referentie naar een object van Graphics. •  het object is het uitvoerscherm waar de • tekst zal terechtkomen.

  22. 14 { 15 // oproepen van de geërfde methode paint 16 super.paint( g ); 17 18 // tekent een String op x-coördinaat 10 en y-coördinaat 20 19 g.drawString( "Welcome to Java Programming!", 10, 20 ); 20 21 } // end method paint BODY VAN DE APPLET-KLASSE: METHODE PAINT() • herhaling: • tussen beide accolades kun je zoveel JAVA-opdrachten zetten als je wilt. • een opdracht in JAVA = statement • elke statement eindigt op ;

  23. 16 super.paint( g ); 19 g.drawString( "Welcome to Java Programming!", 10, 20 ); BODY VAN DE APPLET-KLASSE: METHODE PAINT() • 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 • Methode paint van de superklasse JApplet wordt opgeroepen.

  24. 19 g.drawString( "Welcome to Java Programming!", 10, 20 ); (0, 0) (10, 20) BEELDSCHERM • Beeldscherm is opgebouwd uit kleine puntjes, • zogenaamde pixels. • x • y

  25. 1 <html> 2 <applet code = "WelcomeApplet.class"width = "300" height = "40"> 3 </applet> 4 </html> 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

  26. 1 <html> 2 <applet code = "WelcomeApplet.class"width = "300" height = "40"> 3 </applet> 4 </html> 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

  27. VOORBEELD 2  We willen dat de tekst Welcome to JAVA Programming ! wordt weergegeven op het scherm. • We zullen de broncode en de HTML bespreken

  28. Inleidend commentaar Importeren van de nodige packages De applet-klasse, met daarin de methode paint() 1 <html> 2 <applet code = "WelcomeApplet2.class" width = "300" height = "60"> 3 </applet> 4 </html> 1 // Fig. 3.8: WelcomeApplet2.java 2 // Geeft meerdere strings weer in een applet. 3 4 // Java core packages 5 import java.awt.Graphics; // importeert klasse Graphics 6 7 // Java extension packages 8 import javax.swing.JApplet; // importeert klasse JApplet 9 10 public class WelcomeApplet2 extends JApplet 11 { 12 // tekent tekst op de achtergrond van de applet 13 public void paint( Graphics g ) 14 { 15 // oproepen van de geërfde methode paint 16 super.paint( g ); 17 18 // tekent strings op verschillende locaties 19 g.drawString( "Welcome to", 25, 25 ); 20 g.drawString( "Java Programming!", 25, 40 ); 21 22 } // end method paint 23 24 } // end class WelcomeApplet2 HET JAVA PLATFORM Hello.class

  29. (0, 0) (25, 25) (25, 40) 18 // tekent strings op verschillende locaties 19 g.drawString( "Welcome to", 25, 25 ); 20 g.drawString( "Java Programming!", 25, 40 ); METHODE drawString()

  30. VOORBEELD 3 • We wensen twee lijnen en een tekst weer te geven op het scherm • Welcome to JAVA Programming ! • We zullen de broncode bespreken

  31. Inleidend commentaar Importeren van de nodige packages De applet-klasse, met daarin de methode paint() 1 // Fig. 3.10: WelcomeLines.java 2 // Geeft tekst en lijnen weer in een applet 3 4 // Java core packages 5 import java.awt.Graphics; // importeert klasse Graphics 6 7 // Java extension packages 8 import javax.swing.JApplet; // importeert klasse JApplet 9 10 public class WelcomeLines extends JApplet 11 { 12 // tekent 2 lijnen en tekst op de achtergrond van de applet 13 public void paint( Graphics g ) 14 { 15 // oproepen van de geërfde methode paint 16 super.paint( g ); 17 18 // tekent een horizontale lijn van (15, 10) naar (210, 10) 19 g.drawLine( 15, 10, 210, 10 ); 20 21 // tekent een horizontale lijn van (15, 30) naar (210, 30) 22 g.drawLine( 15, 30, 210, 30 ); 23 24 // tekent een String, tussen de lijnen, op positie (25, 25) 25 g.drawString( "Welcome to Java Programming!", 25, 25 ); 26 27 } // end method paint 28 29 } // end class WelcomeLines HET JAVA PLATFORM

  32. 18 // tekent een horizontale lijn van (15, 10) naar (210, 10) 19 g.drawLine( 15, 10, 210, 10 ); 20 21 // tekent een horizontale lijn van (15, 30) naar (210, 30) 22 g.drawLine( 15, 30, 210, 30 ); METHODE drawLine • Methode drawLine van de klasse Graphics • 4 argumenten: • x en y coördinaat van beginpunt • x en y coördinaat van eindpunt

  33. (210,10) (15, 10) (15, 30) (210, 30) 18 // tekent een horizontale lijn van (15, 10) naar (210, 10) 19 g.drawLine( 15, 10, 210, 10 ); 20 21 // tekent een horizontale lijn van (15, 30) naar (210, 30) 22 g.drawLine( 15, 30, 210, 30 ); METHODE drawLine

  34. 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

  35. Inleidend commentaar Importeren van de nodige packages De applet-klasse, met daarin de methodes init() en paint() Methode init() 1 // Fig. 3.12: AdditionApplet.java 2 // Telt twee decimale cijfers op en geeft het resultaat weer. 3 4 // Java core packages 5 import java.awt.Graphics; // importeert klasse Graphics 6 7 // Java extension packages 8 import javax.swing.*; // importeert package javax.swing 9 10 public class AdditionApplet extends JApplet 11 { private double sum; // som van de twee ingegeven waarden 12 13 // initialisatie van de applet: waarden worden ingegeven 14 public void init() 15 { 16 String firstNumber; //1ste string,ingegeven door gebruiker 17 String secondNumber;//2de string ,ingegeven door gebruiker 18 double number1; // eerste getal 19 double number2; // tweede getal 20 21 // eerste getal wordt aan de gebruiker gevraagd 22 firstNumber = JOptionPane.showInputDialog( 23 "Enter first floating-point value" ); 24 25 // het tweede getal wordt aan de gebruiker gevraagd 26 secondNumber = JOptionPane.showInputDialog( 27 "Enter second floating-point value" ); 28 29 // converteert getallen van type String naar type double 30 number1 = Double.parseDouble( firstNumber ); 31 number2 = Double.parseDouble( secondNumber ); HET JAVA PLATFORM

  36. Methode paint() 33 // het optellen van de ingegeven waarden 34 sum = number1 + number2; 35 } 36 37 // het resultaat, wordt in een vierkant, weergegeven 38 public void paint( Graphics g ) 39 { 40 // oproepen van de geërfde methode paint 41 super.paint( g ); 42 43 // tekent een vierkant beginnend op pos. (15, 10) 44 // 270 pixels breed en 20 pixels hoog 45 g.drawRect( 15, 10, 270, 20 ); 46 47 // het resultaat (als String) wordt weergegeven op pos.(25, 25) 48 g.drawString( "The sum is " + sum, 25, 25 ); 49 50 } // end method paint 51 52 } // end class AdditionApplet HET JAVA PLATFORM 1 <html> 2 <applet code = "WelcomeLines.class"width = "300" height = "40"> 3 </applet> 4 </html>

  37. UITVOER

  38. 1 // Fig. 3.12: AdditionApplet.java 2 // Telt twee decimale cijfers op en geeft het resultaat weer. INLEIDEND COMMENTAAR • Commentaar • Naam van de broncode • Beschrijving van de applet

  39. IMPORTEREN VAN PACKAGES 4 // Java core packages 5 import java.awt.Graphics; //importeert klasse Graphics 6 7 // Java extension packages 8 import javax.swing.*; // importeert package javax.swing • Lijn 5: importeer de klasse Graphics (package java.awt). • Lijn 8: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

  40. 10 public class AdditionApplet extends JApplet 10 public class AdditionApplet extends JApplet 11 { private double sum; // som van de twee ingegeven waarden 12 13 // initialisatie van de applet: waarden worden ingegeven 14 public void init() 15 {… 35 } 36 37 // het resultaat, wordt in een vierkant, weergegeven 38 public void paint( Graphics g ) 39 {… 50 } // end method paint 51 52 } // end class AdditionApplet DE APPLET-KLASSE • De Klasse AdditionAppletbestaat uit • Kop (header) • Body • Van openingsaccolade tot en met sluitingsaccolade • In de body staan de methodes init en paint

  41. 10 public class AdditionApplet extends JApplet KOP (HEADER) VAN APPLET-KLASSE • Applets heeft minstens één klasse door deprogrammeur 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 init1 keer op. • De volgorde van oproepen is steeds: init, start en paint

  42. 10 { • private double sum;// som van de twee ingegeven • // waarden • 12 • 13 // initialisatie van de applet: waarden worden ingegeven • 14 public void init() • 15 { • … • 35 } • 36 • 37 // het resultaat, wordt in een vierkant, weergegeven • 38 public void paint( Graphics g ) • 39 { • … • 50 } // end method paint • 51 • 52 }// end class AdditionApplet BODY VAN DE APPLET-KLASSE • De body bestaat uit « double sum; » en de methodes init en paint.

  43. 11 double sum; // som van de twee ingegeven waarden DECLARATIE VAN OBJECT-VARIABELE • Is een declaratie van een object-variabele • sum is een object-variabele • wordt gedeclareerd in de body van een klasse, niet in een methode. • object-variabelen kunnen overal in de klasse gebruikt worden, dus ook in de methoden van deze klasse. • Variabelen gedeclareerd in methodes zijn lokale variabelen. • Kunnen enkel gebruikt worden in de body van de methode • hebben een defaultwaarde (hier 0.0)

  44. 11 double sum; // som van de twee ingegeven waarden PRIMITIEVE TYPEN • 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. • double neemt meer plaats in het geheugen dan een float.

  45. 13 // initialisatie van de applet: waarden worden ingegeven 14 public void init() 15 { 16 String firstNumber; //1ste string,ingegeven door gebruiker 17 String secondNumber;//2de string ,ingegeven door gebruiker 18 double number1; // eerste getal 19 double number2; // tweede getal 20 21 // eerste getal wordt aan de gebruiker gevraagd 22 firstNumber = JOptionPane.showInputDialog( 23 "Enter first floating-point value" ); 24 25 // het tweede getal wordt aan de gebruiker gevraagd 26 secondNumber = JOptionPane.showInputDialog( 27 "Enter second floating-point value" ); 28 29 // converteert getallen van type String naar type double 30 number1 = Double.parseDouble( firstNumber ); 31 number2 = Double.parseDouble( secondNumber ); 33 // het optellen van de ingegeven waarden 34 sum = number1 + number2; 35 } METHODE INIT() • 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.

  46. 14 public void init() KOP (HEADER) VAN METHODE 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 demethode 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.

  47. 15 { 16 String firstNumber; //1ste string,ingegeven door gebruiker 17 String secondNumber;//2de string ,ingegeven door gebruiker 18 double number1; // eerste getal 19 double number2; // tweede getal BODY VAN DE METHODE INIT() • Declaratie van 4 lokale variabelen: • 2 lokale string variabelen • 2 lokale variabelen van het type double • number1 en number2 krijgen geen defaultwaarde

  48. 15 { 16 String firstNumber; //1ste string,ingegeven door gebruiker 17 String secondNumber;//2de string ,ingegeven door gebruiker 18 double number1; // eerste getal 19 double number2; // tweede getal BODY VAN DE METHODE INIT() • We maken een onderscheid tussen • Referentie-variabelen (= referenties) • firstNumber en secondNumber zijn referenties • primitieve data typen variabelen (= variabelen) • number1 en number2 zijn variabelen

  49. 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

  50. 21 // eerste getal wordt aan de gebruiker gevraagd 22 firstNumber = JOptionPane.showInputDialog( 23 "Enter first floating-point value" ); BODY VAN DE METHODE INIT() • 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 floating-point value " )

More Related