String Javafx时间线侦听器:ObservalEvalue为双精度
我正在尝试将一个更改侦听器添加到JavaFXString Javafx时间线侦听器:ObservalEvalue为双精度,string,javafx,double,listener,observable,String,Javafx,Double,Listener,Observable,我正在尝试将一个更改侦听器添加到JavaFX时间线的currentTimeProperty中。我希望获得当前时间的值,并将其表示为双精度,以便对该值执行操作等 目前,它看起来是这样的: public void addAnimationListener() { animation.getTimeline().currentTimeProperty().addListener(new ChangeListener(){ @Override public voi
时间线的currentTimeProperty
中。我希望获得当前时间的值,并将其表示为双精度,以便对该值执行操作等
目前,它看起来是这样的:
public void addAnimationListener()
{
animation.getTimeline().currentTimeProperty().addListener(new ChangeListener(){
@Override
public void changed(ObservableValue arg0, Object arg1, Object arg2) {
//double curPercentageValue = arg0.getValue(); //My attempt at trying to get the value to be a double. I tried casting it and such...
System.out.println(arg0.getValue());
}
});
}
T它打印出来的值是,例如:
128.33334毫秒
…所以我可以只执行字符串
操作来删除“ms”
,然后使用Double.parseDouble()
将其转换为所需的数据类型…但是有更好的方法吗?直接得到值的那个
提前感谢您的帮助 如果正确键入泛型类型(不要忽略编译器/IDE警告),这些事情总是比较容易弄清楚的:
publicstaticvoid addAnimationListener()
{
animation.getTimeline().currentTimeProperty().addListener(新的ChangeListener()){
@凌驾
public void changed(可观察性)这正是我所需要的@James_D。对不起,我对实现这些东西还很陌生,所以我甚至没有想到我可以更改泛型类型。它现在正如我所希望的那样工作。尊敬的Ben。
public static void addAnimationListener()
{
animation.getTimeline().currentTimeProperty().addListener(new ChangeListener<Duration>(){
@Override
public void changed(ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) {
double millis = newValue.toMillis();
System.out.println(millis + " ms");
}
});
}