在 Javafx 中更改线条的颜色

Changing colour of a Line in Javafx

我有一个关于 javafx 中线条着色的小问题。我编写了一个场景,在这个场景中,每次点击鼠标都会创建一个圆圈。此外,每次单击鼠标后,都会计算并添加一条回归线。我现在要做的就是将回归线的颜色更改为红色。我试过 setFill(Color.[anycolour]) 方法,但无济于事。这是鼠标点击事件的代码。

    import javafx.collections.ObservableList;
    import javafx.event.EventHandler;
    import javafx.scene.Node;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.paint.Color;
    import javafx.scene.shape.Circle;
    import javafx.scene.shape.Line;


    public class MouseClick implements EventHandler<MouseEvent>
    {
    private static int counter = 0;
    private static Line regression;
    
    public void handle(MouseEvent event) 
    {
        ObservableList<Node> children = Graphics.getRoot().getChildren();
        
        System.out.println("X: " + event.getX() + " Y: " + event.getY());

        Circle circle = new Circle(event.getX(), event.getY(), 5);
        children.add(circle);
        MouseClick.counter++;

        if(counter > 1)
        {
            children.remove(regression);
            double[] regr = calculateRegression(children);
            System.out.println("slope: " + regr[0]+ " Yint: " + regr[1]);

            regression = new Line();
            regression.setStartX(0.0);
            regression.setStartY(regr[1]);
            regression.setEndX(Graphics.getWidth());
            regression.setEndY(regr[0] * Graphics.getWidth() + regr[1]);
            regression.setFill(Color.CRIMSON);
            children.add(regression);
        }
    }

我什至尝试制作一个新的 class MyLine,其中每条线都用一种颜色实例化,但这也没有用,线仍然是黑色。有趣的是,当我在创建圆圈后添加那行代码时,它适用于圆圈。

    Circle circle = new Circle(event.getX(), event.getY(), 5);
    circle.setFill(Color.CRIMSON);

有谁知道问题出在哪里,或者是否有其他方法可以更改线条颜色?

A Line 没有要填充的内部。您需要改为设置描边的颜色。替换:

regression.setFill(Color.CRIMSON);

与:

regression.setStroke(Color.CRIMSON);