Le Tutoriel de JavaFX Line

View more Tutorials:

1- JavaFX Line

En  JavaFX, la classe Line est utilisée pour tracer une ligne droite. Comme les classes Rectangle, Circle,.. elles sont toutes étendues de classe Shape. 

2- Exemple de Line

LineDemo.java
package org.o7planning.javafx.line;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
import javafx.stage.Stage;

public class LineDemo extends Application {

    @Override
    public void start(Stage stage) {

        // A line in Ox Axis
        Line oxLine1 = new Line(0, 0, 400, 0);

        // Stroke Width
        oxLine1.setStrokeWidth(5);
        oxLine1.setStroke(Color.BLUE);

        // A line in Oy Axis
        Line oyLine = new Line(0, 0, 0, 200);

        // Stroke Width
        oyLine.setStrokeWidth(5);
        oyLine.setStroke(Color.BLUEVIOLET);

        // An other Line
        Line line = new Line();
        line.setStartX(100.0f);
        line.setStartY(200.0f);
        line.setEndX(300.0f);
        line.setEndY(70.0f);
        line.setStrokeWidth(10);
        line.setStroke(Color.PINK);

        AnchorPane root = new AnchorPane();
        root.setPadding(new Insets(15));

        final Scene scene = new Scene(root, 400, 250);

        scene.setFill(null);
        root.getChildren().addAll(oyLine, oxLine1, line);

        stage.setTitle("JavaFX Line (o7planning.org)");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

3- Les propriétés de Line

smooth

Il rend la valeur true si vous souhaitez activer l'anticrénelage (anti-aliasing), et false pour désactiver l'anticrénelage (anti-aliasing).

strokeWidth

Définissez la largeur d'une ligne.

stroke

Utilisez la méthode setStroke pour définir la couleur de Line.
// Set Line color.

line.setStroke(Color.RED);

Stroke Dash Array

LineStrokeDashArrayDemo.java
package org.o7planning.javafx.line;

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.shape.Line;
import javafx.stage.Stage;

public class LineStrokeDashArrayDemo extends Application {

    @Override
    public void start(Stage stage) {

        Line line1 = new Line(20, 40, 270, 40);
        line1.getStrokeDashArray().addAll(25.0, 20.0, 5.0, 20.0);

        Line line2 = new Line(20, 60, 270, 60);
        line2.getStrokeDashArray().addAll(50.0, 40.0);

        Line line3 = new Line(20, 80, 270, 80);
        line3.getStrokeDashArray().addAll(25.0, 10.0);

        Line line4 = new Line(20, 100, 270, 100);
        line4.getStrokeDashArray().addAll(2.0);

        Line line5 = new Line(20, 120, 270, 120);
        line5.getStrokeDashArray().addAll(2.0, 21.0);

        AnchorPane root = new AnchorPane();
        root.setPadding(new Insets(5));

        final Scene scene = new Scene(root, 400, 250);

        root.getChildren().addAll(line1, line2, line3, line4, line5);

        stage.setTitle("JavaFX Line (o7planning.org)");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

strokeDashOffset

En plus de la propriété,  stroke-dashoffset - il est possible de traduire du début jusqu'à le tiret. Cela est contrôlé par la propriété stroke-dashoffset.

strokeLineCap

strokeLineCap - spécifie la forme utilisée à la fin du paragraphe. Il existe trois styles :

  • StrokeLineCap.BUTT
  • StrokeLineCap.ROUND
  • StrokeLineCap.SQUARE

strokeLineJoin

stroke-linejoin: Indique la forme qui est utilisée à l'intersection de deux lignes droites. Il y a 3 types :

  • StrokeLineJoin.MITER
  • StrokeLineJoin.BEVEL
  • StrokeLineJoin.ROUND

strokeMiterLimit

strokeMiterLimit - Est un valeur dans le champ de 0 à 1, il est appliqué dans le cas de  strokeLineJoin = StoreLineJoin.MITER pour limiter le rapport entre  miterLenghstrokeWidth.
Lorsque l'angle d'intersection entre deux lignes droites devient plus petite (angle est plus étroit), le rapport entre miterLength et storeWidth peut être plus grand que  stooreMiterLimit. Dans ce cas, la forme des points d'intersection entre deux droites sera changée de "Mitre-Join" à "Bevel_Join".

View more Tutorials: