我想扩展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使用类似的方法。在“看起来”形状但不是“形状”的类型上设置属性。

10-08 13:06