JavaFX 8滑块未更新值

JavaFX 8滑块未更新值,java,javafx,javafx-8,Java,Javafx,Javafx 8,调用属于Slide类的.adjustValue时,我的滑块未更新。我还尝试了.setValue,只是为了获得相同的结果。。。 我在my.fxml中定义了滑块,并在下面的控制器类中引用了滑块 在过去的两个小时里我一直被难倒。。。 任何帮助都将不胜感激 编辑:删除旧代码并提交以下更简洁的代码: 因为我没有遵守StackOverFlows最小可复制示例,所以我在下面提交了新代码,显示了相同的问题,但更加简洁 import javafx.fxml.FXML; import javafx.scene.co

调用属于Slide类的.adjustValue时,我的滑块未更新。我还尝试了.setValue,只是为了获得相同的结果。。。 我在my.fxml中定义了滑块,并在下面的控制器类中引用了滑块

在过去的两个小时里我一直被难倒。。。 任何帮助都将不胜感激

编辑:删除旧代码并提交以下更简洁的代码:

因为我没有遵守StackOverFlows最小可复制示例,所以我在下面提交了新代码,显示了相同的问题,但更加简洁

import javafx.fxml.FXML;
import javafx.scene.control.Slider;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;

import java.io.File;

public class Controller {

    public Controller(){}

    @FXML
    private Slider songSliderBar;
    MediaPlayer mediaPlayer;

    public void begin(){
        String pathToSong = "PATH TO SONG (IM USING .MP4)";

        Media media = new Media(new File(pathToSong).toURI().toString());
        mediaPlayer = new MediaPlayer(media);
        mediaPlayer.setAutoPlay(true);

        mediaPlayer.setOnReady(new Runnable() {
            @Override
            public void run() {
                songSliderBar.setMax(mediaPlayer.getTotalDuration().toSeconds());
                System.out.println(mediaPlayer.getTotalDuration().toSeconds());
            }
        });

        mediaPlayer.currentTimeProperty().addListener((observableValue, oldDuration, newDuration) -> {

            double currentValue = newDuration.toSeconds() / mediaPlayer.getTotalDuration().toSeconds();
            songSliderBar.setValue(currentValue);
            System.out.println(currentValue);
        } );

    }
}

请..adjustValue对于应用程序代码来说绝对是错误的方法-请参阅api文档。此函数旨在供专家使用,主要由实现新外观或行为的专家使用。至于设置值,请参阅我的第一条评论。如果滑块的最大值是媒体的持续时间(以秒为单位),则滑块的值应是媒体的持续时间(以秒为单位),而不是百分之一秒。啊。。您将max设置为绝对totalTime,value设置为current to total的比例,与max相比,这是一个非常小的值:)为了澄清,您将max设置为total time,这意味着您应该将该值设置为current time,而不是current time/total time。请..adjustValue对于应用程序代码来说绝对是错误的方法-请参阅api文档。此函数旨在供专家使用,主要由实现新外观或行为的专家使用。至于设置值,请参阅我的第一条评论。如果滑块的最大值是媒体的持续时间(以秒为单位),则滑块的值应是媒体的持续时间(以秒为单位),而不是百分之一秒。啊。。您将max设置为绝对totalTime,value设置为current to total的比例,与max相比,这是一个非常小的值:)为了澄清,您将max设置为total time,这意味着您应该将该值设置为current time,而不是current time/total time。