JavaFX와 관련하여 어떤 속성이 변경되면 "유효하지 않은"속성입니까? 나는이 용어를 사용하는 이유를 이해하지 못한다.JavaFX - 속성의 의미가 "무효"
JavaFX 속성은 관찰 가능하고 필드 값을 래핑하는 객체입니다. 따라서 건물 소유자/관람자는 재산이 갱신되거나 이 무효가되면 통고를받습니다. 그게 무슨 소리 야?
JavaFX와 관련하여 어떤 속성이 변경되면 "유효하지 않은"속성입니까? 나는이 용어를 사용하는 이유를 이해하지 못한다.JavaFX - 속성의 의미가 "무효"
JavaFX 속성은 관찰 가능하고 필드 값을 래핑하는 객체입니다. 따라서 건물 소유자/관람자는 재산이 갱신되거나 이 무효가되면 통고를받습니다. 그게 무슨 소리 야?
여기에서 좋은 설명을 발견했습니다. intProperty.set (7168)가 호출
, 그것은 otherProperty에 무효화 이벤트 을 발생합니다. 이 무효화 이벤트를 수신하면 otherProperty는 단순히 해당 값이 유효 기간보다 길지 만 기록합니다. 값에 대해 intProperty를 쿼리하여 해당 값의 값을 즉시 다시 계산하지 않습니다. otherProperty.get()이 호출 될 때 나중에 수행되는 재 계산은 입니다. 위 코드 에서처럼 intProperty.set()을 한 번만 호출하여 을 호출하는 경우 intProperty.set()를 여러 번 호출하는 경우를 상상해보십시오. otherProperty는 여전히 값을 한 번만 다시 계산합니다.
테스트 후이 예제를 발견했습니다.
IntegerProperty [value: 10]
이제 주석 처리 된 줄에서 주석을 제거 :
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
public class InvalidMean{
public static void main(String[] args){
IntegerProperty num1 = new SimpleIntegerProperty(15);
IntegerProperty num2 = new SimpleIntegerProperty(10);
// num2.bind(num1);
// num1.set(56);
System.out.println(num2);
}
}
실행이 코드이 출력을 얻을 것이다. 그리고 당신은이 산출물을 얻을 것입니다. 새 값이 도착하지만 아직 업데이트되지 때문에
IntegerProperty [bound, invalid]
num2
의 값은 무효가됩니다. JavaFX Doc은 게으른 평가 때문에 설명합니다.
자바 FX 결합 및 속성 구현 모든 변경이 발생하면 값이 즉시 재 계산 없다는 것을 의미 지연 평가를 지원한다. 나중에 값을 요청할 경우 재 계산이 나중에 발생합니다.
당신이 값이이 속성은 다음 유효합니다 볼 수 System.out.println(num2);
하기 전에 유효한 전화 num2.getValue();
또는 num2.get();
해야합니다.
참고 : 바인드 이미도 값을 변경하려고 num2
과 set()
의 값을 변경하기 때문에 위의 예에서 num2.bind(num1);
및 num1.set(56);
모두 num2
의 유효하지 않은 값을 만들 것입니다.
다음은 [변경 대 무효화에 관한 블로그]입니다 (http : //blog.netopyr.JavaFX 2 속성 및 바인딩 구현의 과거 수석 개발자가 변경 목록 (예 : com/2012/02/08/when-to-use-a-changelistener-or-an-invalidationlistener /) – jewelsea