【问题标题】:Javafx Timeline Listener: ObservableValue to DoubleJavafx 时间线侦听器:ObservableValue to Double
【发布时间】:2014-10-17 20:59:50
【问题描述】:

我正在尝试将 change listener 添加到 JavaFX TimelinecurrentTimeProperty。我想获取当前时间的值,并将其表示为 double,以便我可以对该值执行操作等。

目前是这样的:

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.33333333333334 毫秒

...所以我可以执行String 操作来删除" ms",然后使用Double.parseDouble() 将其转换为所需的数据类型...但是有更好的方法吗?直接取值的?

提前感谢您的帮助!

【问题讨论】:

    标签: string javafx double listener observable


    【解决方案1】:

    如果您正确键入泛型类型,这些事情总是更容易弄清楚(不要忽略编译器/IDE 警告):

    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");
            }
    
        });
    }
    

    【讨论】:

    • 这正是我需要的@James_D。对不起,我对实现这些东西还很陌生,所以我什至没有想到我可以更改泛型类型。它现在完全按照希望工作。问候,本。
    猜你喜欢
    • 1970-01-01
    • 2016-09-06
    • 2016-04-19
    • 2013-12-17
    • 2015-03-07
    • 2016-11-15
    • 2019-10-20
    • 1970-01-01
    • 2014-08-13
    相关资源
    最近更新 更多