2014-11-17 8 views
0

인 노드의 속성을 관찰 선언으로 : ObservableValue < 경계 >에게 있습니다자바 FX 및 제네릭 - 자바 FX 노드의 속성 주어진 ObservableValue

public final ReadOnlyObjectProperty<Bounds> boundsInParentProperty 

.... 그리고 방법은 ChangeListener의 < 경계 > 해당 구현 :

public void changed(ObservableValue<? extends Bounds> observedValue, Bounds oldvalue, Bounds newvalue) 

방법의 첫 번째 인수는 무엇입니까?

처음에는 observedValue.getValue()를 사용했지만, 나중에 두 번째 및 세 번째 인수 (newvalue - oldvalue)에서 다양한 좌표 좌표의 델타를 계산할 수있었습니다. 인수의 유형은 알려진 바운드 (Bounds)이므로 키 - 값 체계와 다릅니다. 나는 내가 이해하지 못하는 것에 대해 매우 불신합니다. 그래서 이것이 '관찰 된 가치'입니까? 그리고 그것을 사용해야합니까?

EDIT : ObservableValue (여러 개일 경우)가 이벤트 소스 인 것을 확인하는 데 사용되는 의견을 이해합니다. 두 개의 드래그 가능한 노드 사이에 선을 그려서 화면에 표시하고 싶다고 가정 해 봅시다.이 방법으로 경계를 추적하려고합니다. 어떤 노드가 변화의 원천인지를 결정하는 방법 (참조를 얻는다)?

답변

0

여러 변수를 변경하기 위해 청취자를 구독하는 경우가 있으며, 그 중 하나가 변경되었을 수도 있습니다. Observer 구현에서 꽤 인기있는 트릭입니다.

+0

즉 'observedValue'는 변경된 속성에 대한 참조입니다. –

+0

또는 좀 더 구체적으로 :'observedValue'는'boundsInParentProperty'에 전달 될 것입니다. 왜냐하면 그것은 변경을 트리거 한 ObservableValue의 인스턴스이기 때문입니다. – eckig