У меня есть этот класс, который расширяет переход, который оживляет ширину элемента:
public class Resize extends Transition {
private double width;
private double diff;
private Region region;
public ResizeWidth(Duration duration, Region region, double newWidth ) {
setCycleDuration(duration);
this.region = region;
this.width = region.getWidth();
this.diff= newWidth - width;
}
@Override
protected void interpolate(double frac) {
region.setPrefWidth(width + (diff * frac));
}
}
Но я думаю, что та же анимация без визуального различия сопровождается анимацией:
Animation animation = new Timeline(
new KeyFrame(Duration.seconds(2),
new KeyValue(field.prefWidthProperty(), 1))
animation.play();
Так в чем же разница и какой лучший способ это сделать?