在 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);
我有一个关于 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);