如何在Java中观察一个简单的浮点数?

时间:2017-01-17 12:43:00

标签: java javafx binding observable

我有一个基于vlcj的JavaFX应用程序,我想观察或绑定一个浮点数。

float position = mediaPlayer.getPosition(); // returns actual position

如何观察或绑定滑块的位置?职位没有财产。

Slider timeSlider = new Slider(0d, 100d, 0d);
timeSlider.setValue(position); // but position is permanently changing

你有什么想法吗?非常感谢。 :)

1 个答案:

答案 0 :(得分:0)

你不能在这里使用绑定,但是:

正如我在MediaPlayer中看到的,您可以添加监听器:

void addMediaPlayerEventListener(MediaPlayerEventListener listener);

MediaPlayerEventListener类有一个

void positionChanged(MediaPlayer mediaPlayer, float newPosition);方法哪个类由MediaPlayerEventAdapter实现。

  

媒体播放位置发生了变化。

因此,这种双向倾听应该有效:

mediaPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
    @Override
    public void positionChanged(MediaPlayer mediaPlayer, float newPosition) {
        timeSlider.setValue(newPosition);
    }
});

timeSlider.valueProperty().addListener((obs, oldval, newval) -> mediaPlayer.setPosition(newval));

(还没试过)