ValueProperty Change Listener

时间:2014-11-03 07:38:48

标签: java events javafx slider

我遇到以下问题:

我有一个定制的双滑块,检查此滑块的每个值变化非常重要! enter image description here

如果我现在改变左侧或右侧滑块有一个事件 - 处理!如果我点击滑块线上还有一个事件,但它不正确!

当我点击滑块线时,展位滑块会一起跳,值是实际的,但只有1个事件 - 汉德尔!

如何将这些事件绑定在一起?

 m_slider.value1Property().addListener(new ChangeListener()
        {
            @Override
            public void changed(ObservableValue arg0, Object arg1, Object arg2)
            {
                try
                {
                    handleSlider();
                }
                catch (Exception e)
                {
                }
            }
        });

        m_slider.value2Property().addListener(new ChangeListener()
        {
            @Override
            public void changed(ObservableValue arg0, Object arg1, Object arg2)
            {
                try
                {
                    handleSlider();
                }
                catch (Exception e)
                {
                }
            }

        });

在这里你可以看到我的事件绑定!如果Value1(左滑块)或Value2(右滑块)改变了那些值,则有一个事件触发器。但是如果他们的展位发生了变化,那么价值观(点击滑块的行)只有1个事件触发器,而不是展位!

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我必须将Change-Listener事件添加到textProperty! 如果有变化,那么事件将会发生变化!

        m_minSlider.textProperty().addListener(new ChangeListener()
        {

            @Override
            public void changed(ObservableValue arg0, Object arg1, Object arg2)
            {
                handleSlider();
            }
        });

        m_maxSlider.textProperty().addListener(new ChangeListener()
        {
            @Override
            public void changed(ObservableValue arg0, Object arg1, Object arg2)
            {
                handleSlider();
            }
        });