我想扩展JavaFX类Line,因为我希望起点和终点是一个圆或箭头或某物。像那样。除此之外,我想在将来标记这条线。
问题是如何覆盖绘画方法?哪种方法负责划清界限,我如何实现自己的愿望?
到现在为止,我明白了,但是如果我使Line停滞不前,它不会改变外观:
import javafx.scene.shape.Circle;
import javafx.scene.shape.Line;
public class LabeledLine extends Line {
private Circle startCircle;
private Circle endCircle;
public LabeledLine(){
super();
startCircle = new Circle(getStartX(), getStartY(), 10);
endCircle = new Circle(getEndX(), getEndY(), 10);
startCircle.setFill(getFill());
endCircle.setFill(getFill());
}
public LabeledLine(double startX, double startY, double endX, double endY){
super(startX, startY, endX, endY);
startCircle = new Circle(getStartX(), getStartY(), 10);
endCircle = new Circle(getEndX(), getEndY(), 10);
startCircle.setFill(getFill());
endCircle.setFill(getFill());
}
}
最佳答案
就我所知,您不应该直接扩展基础Shapes。而是扩展Region
并将组合的Line
用作子节点。
https://github.com/aalmiray/jsilhouette使用类似的方法。在“看起来”形状但不是“形状”的类型上设置属性。