★ Aan de slag 30

Als voorbeeld maken we een app, die een horizontale lijn op het scherm tekent zoals hiernaast:

  1. Maak een nieuwe app en sla de app op onder de naam TekenLijnApp in een nieuwe map TekenLijnProject.
  2. Om gebruik te maken van het package javafx.scene.canvas moet het package geïmporteerd worden:
    import javafx.scene.canvas.*;  
  3. De volgende stap is het creëren van twee objecten:

      // Begin variabelen
        Canvas canvas = new Canvas(400, 200);
        GraphicsContext gc = canvas.getGraphicsContext2D();
      // Einde variabelen


De argumenten van de constructor van de klasse Canvas bepalen de breedte en hoogte van het canvas.
NB. Het is logische om de maten van de scene gelijk te houden met de maten van het canvas.
Scene scene = new Scene(root, 400, 200);

  1. Door middel van de aanroep van de methode add() in de methode start() wordt het object in de container gezet, zodat het op het venster getoond wordt:
    root.getChildren().add(canvas);
  2. De volgende stap is het schrijven van een methode die de lijn tekent:
    public void tekenLijn()  {
           gc.strokeLine(50,50,250,50);
    }

De methode strokeLine() heeft 4 argumenten: de eerste twee geven de x- en y-coördinaten (in pixels) van het begin van de lijn, de laatste twee van het eind van de lijn.

Met de methoden strokeRect(x,y,b,h) en strokeOval(x,y,b,h) kun je respectievelijk een rechthoek (en vierkant) of een ellips (en cirkel) tekenen.
De eerste twee argumenten van deze methoden geven de plaats van de linkerbovenhoek van de figuur aan.
Een ellips of cirkel heeft geen linkerbovenhoek, maar je kunt daar wel een rechthoek omheen denken (de bounding box).
De laatste twee argumenten geven respectievelijk de breedte en de hoogte van de figuur.

De methoden fillRect() en fillOval() tekenen gevulde figuren.

  1. Om de lijn bij het opstarten van de app te laten tekenen zetten we de aanroep van de methode tekenLijn() in de methode start().