在javafx中更改线条的颜色

62o28rlo  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(390)

我有一个关于javafx中一行的着色的小问题。我编写了一个场景,在这个场景中,每次鼠标点击都会创建一个圆圈。此外,每次鼠标单击后,都会计算并添加回归线。我现在想做的就是把回归线的颜色改成红色。我尝试过setfill(color.[anycolor])方法,但没有效果。这是鼠标单击事件的代码。

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);
        }
    }

我甚至尝试创建一个新的类myline,其中每一行都用一种颜色示例化,但这也不起作用,而且行仍然是黑色的。有趣的是,当我在创建圆之后添加代码行时,它对圆有效。

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

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

csbfibhn

csbfibhn1#

A. Line 没有要填充的内部。您需要设置笔划的颜色。替换:

regression.setFill(Color.CRIMSON);

与:

regression.setStroke(Color.CRIMSON);

相关问题