2014-11-03 7 views
0

다음과 같은 문제가 있습니다.ValueProperty Listener 변경

사용자 정의 듀얼 슬라이더가 있습니다.이 슬라이더의 모든 값 변경을 확인하는 것이 매우 중요합니다! 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 개의 이벤트 트리거 만 있고 부스는 없습니다!

이 문제는 어떻게 해결할 수 있습니까?

+0

고객의 슬라이더가 무엇을하는지 보려면 유용 할 것입니다. – mkobit

+0

어떻게이 정보를 제공 할 수 있습니까? 뭐가 필요해? –

+0

이전에는 JavaFX를 사용하지 않았지만 충분한 정보가 없기 때문에 이러한 유형의 동작을 직접 확인하고 싶었습니다. 즉,이 문제를 해결하는 방법을 모색하고 싶다면 [MCVE] (http://stackoverflow.com/help/mcve)가 필요합니다. – mkobit

답변

0

해결책을 찾았습니다. TextProperty에 Change-Listener 이벤트를 추가해야합니다! 변경 사항이있을 경우 이벤트는 다른 것을 처리합니다!

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