我需要在javafx中用进度条绘制矩形圆角。
我已经做了一些代码绘制带有角的矩形。
但是我如何显示进度效果。
以下是我尝试模仿的示例。
http://jsfiddle.net/m1erickson/P2qTq/
还有其他方法可以做到这一点。指导我谢谢你。
Tumbling time window - Time-based Fixed-size, non-overlapping, gap-less windows
Hopping time window- Time-based Fixed-size, overlapping windows
Sliding time window- Time-based Fixed-size, overlapping windows that work on differences between record timestamps
Session window
->更新<-
我找到了另一种方法。使用带有笔触偏移量的Rectangle。 但仍然面临一个问题,从顺时针开始。
Math.Max(InsideRadius, 20)
如果您知道更好的解决方案,请告诉我。
答案 0 :(得分:3)
我使用Rectangle和stroke-dash-offset解决了它。这可能会帮助他人并节省宝贵的时间。
Rectangle rectangle= new Rectangle();
rectangle.setX(offsetX);
rectangle.setY(offsetY);
rectangle.setWidth(200);
rectangle.setHeight(200);
rectangle.setStroke(Paint.valueOf("#000000"));
rectangle.setFill(Color.TRANSPARENT);
rectangle.setStrokeWidth(5);
rectangle.setStrokeMiterLimit(5);
rectangle.setSmooth(true);
rectangle.setStrokeLineCap(StrokeLineCap.ROUND);
// rectangle.setStrokeLineJoin(StrokeLineJoin.ROUND);
double length=rectangle.getWidth()*2+rectangle.getHeight()*2;
//set stroke dash length
rectangle.getStrokeDashArray().addAll(length);
//display empty stroke/border
rectangle.setStrokeDashOffset(length);
group.getChildren().add(rectangle);
container.add(group,0,0);
slider.valueProperty().addListener((observable, oldValue, newValue) -> {
double offset=length-((length*(newValue.doubleValue()/100)));
rectangle.setStrokeDashOffset(-offset);
});