Я создал пользовательский индикатор выполнения в JavaFX. Теперь я хочу добавить эффект свечения в progressBar.Как добавить эффект свечения В пользовательском шаге прогресса JavaFX
Для этого я создал эллипс с эффектом гауссова размытия и добавьте центр X эллипса в шкалу времени, чтобы я мог анимировать эффект свечения в индикаторе выполнения.
Это код создает эллипс
public Ellipse glowshape;
DropShadow glowEffect;
SimpleDoubleProperty width;
//create ellipse for gloweffect
public void createEllipse(){
glowshape = new Ellipse(25, 20, 10, 15);
glowshape.setFill(Color.rgb(255,255,255,.7));
glowshape.setEffect(new GaussianBlur(5));
}
public void init(){
indetermination();
setStartAnimation();
createEllipse();
width = new SimpleDoubleProperty(0);
width.bind(this.widthProperty());
setGlowAnimation();
}
Это метод для анимации
public void setGlowAnimation(){
KeyValue value = new KeyValue(glowshape.centerXProperty(),width.doubleValue(),Interpolator.EASE_OUT);
KeyFrame keyframe1 = new KeyFrame(Duration.millis(2000),value);
glow_timeline = new Timeline();
glow_timeline.setCycleCount(Timeline.INDEFINITE);
glow_timeline.setAutoReverse(true);
glow_timeline.getKeyFrames().add(keyframe1);
}
Хотя я Свяжите свойство ширины с шириной настраиваемого свойством бара так эллипс CenterX Безразлично не превышайте текущий ход индикатора выполнения и должны возвращаться назад. Но это не происходит, когда анимация запускает его, просто перемещает определенное, а затем застревает. Я думаю, что целевое значение Keyvalue вообще не обновляется в методе анимации.
Было бы здорово, если бы кто-нибудь помог мне в этом.
Может быть, вы могли бы поделиться фрагмент кода, показывающий, как вы создали прогресс бар? – davidrpugh