JavaFX使用多个点绘制多形状

时间:2017-12-22 16:22:21

标签: java javafx-2 line

我有一个Point的arraylist。我想画点出来。这就是我所做的。

for (int i = 0; i < arrPoint.size(); i++) {
            Point startPoint = arrPoint.get(i);
            Point endPoint = null;
            if (i == arrPoint.size()) {
                endPoint = arrPoint.get(0);
            } else {
                endPoint = arrPoint.get(i + 1);
            }
            Line line = new Line();
            line.setStartX(startPoint.getCoordinateX());
            line.setEndX(endPoint.getCoordinateX());
            line.setStartY(startPoint.getCoordinateY());
            line.setEndY(endPoint.getCoordinateY());
            box.getChildren().add(line);
        }

My Point cass就像

public class Point {
    private double coordinateX;
    private double coordinateY;

    public Point(double coordinateX, double coordinateY) {
        this.coordinateX = coordinateX;
        this.coordinateY = coordinateY;
    }

    public void setCoordinateX(double coordinateX) {
        this.coordinateX = coordinateX;
    }

    public void setCoordinateY(double coordinateY) {
        this.coordinateY = coordinateY;
    }

    public double getCoordinateX() {
        return coordinateX;
    }

    public double getCoordinateY() {
        return coordinateY;
    }
}

我的代码显示为空白。我是JavaFx的新手。我能得到任何帮助吗?

1 个答案:

答案 0 :(得分:0)

你需要先得分才能循环绘制点。

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }
    @Override
    public void start(Stage primaryStage) {

        primaryStage.setTitle("Draw line");


        Group g = new Group();
        Scene scene = new Scene(g, 550, 550,Color.web("0x0000FF",1.0));

        ObservableList<Point> arrPoint = FXCollections.observableArrayList();

        Point point1 = new Point(100, 200);
        Point point2 = new Point(300, 400);

        arrPoint.addAll(point1, point2);

        for (int i = 0; i < arrPoint.size()-1; i++) {
            Point startPoint = arrPoint.get(i);
            Point endPoint = null;
            if (i == arrPoint.size()) {
                endPoint = arrPoint.get(0);
            } else {
                endPoint = arrPoint.get(i + 1);
            }
            Line line = new Line();
            line.setStartX(startPoint.getCoordinateX());
            line.setEndX(endPoint.getCoordinateX());
            line.setStartY(startPoint.getCoordinateY());
            line.setEndY(endPoint.getCoordinateY());
            g.getChildren().add(line);
        }



        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

我希望它可以帮助你。