Руководство JavaFX Line

1- JavaFX Line

В JavaFX, класс  Line используется для наривания прямой линии. Так же как класс Rectangle, Circle, ... они все расширены из класса  Shape.

2- Пример с 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- Атрибуты Line

smooth

Значениеị true если вы хотите включить свойство сглаживания (anti-aliasing), и false чтобы отключить свойство сглаживания (anti-aliasing).

strokeWidth

Установить ширину линии.

stroke

Использовть метод  setStroke для установки цвета линии.
// 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

stroke-dashoffset - Это дополнительный атрибут к атрибуту stroke-dasharray, который имеет способность передвигать момент начала dash.

strokeLineCap

strokeLineCap - определяет фигуру использованную в конце. Есть 3 фигуры как в изображении ниже:
  • StrokeLineCap.BUTT
  • StrokeLineCap.ROUND
  • StrokeLineCap.SQUARE

strokeLineJoin

stroke-linejoin: Определяет фигуру в углу пересеченных линий. Есть 3 вида фигуры:
  • StrokeLineJoin.MITER
  • StrokeLineJoin.BEVEL
  • StrokeLineJoin.ROUND

strokeMiterLimit

strokeMiterLimit - Это значение в диапазоне 0-1, которое применяется в случае  strokeLineJoin = StoreLineJoin.MITER. Чтобы ограничить пропорцию между  miterLengh и  strokeWidth.
Чем меньше угол при пересечении двух прямых линий (чем острее угол). Пропорция между  miterLength и storeWidth может быть больше  storeMiterLimit. В данном случае фигура при пересечении между двумя прямыми линиями изменится из "Miter-Join" в "Bevel-Join".