我想扩展JavaFX类Line,因为我希望起点和终点是一个圆或箭头或其他东西。像那样。除此之外,我想将来标记该行。 问题是如何覆盖paint方法?什么方法负责划定界限以及我必须如何实现我的愿望? 到目前为止,我明白了,但如果我 instaciate 一条线,它不会改变外观:
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());
}
}
最佳答案
据我所知,您不应该直接扩展基本形状。而是扩展 Region
并使用组合的 Line
作为子节点。
https://github.com/aalmiray/jsilhouette使用类似的方法。属性是在“看起来像”形状但实际上并非如此的类型上设置的。
关于java - 如何延长 JavaFX 线或其他形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42673196/