컨트롤의 visibleProperty()
이 있다고 가정 해 봅시다. 응용 프로그램의 어느 곳에서나 BooleanProperty
에 바인딩되어 있습니다.JavaFX - 데이터 바인딩 - 추가 BooleanBinding
내가 얻고 싶었던 것은 코드 조각에 추가 바인딩을 추가하여 가시성이 예 : 기존 또는 향후 바인딩에 관계없이 항상 거짓입니다. 그러나 false를 반환하는 바인딩이 있으면 visiblity를 true로 설정할 수 없습니다. 그래서 부울 논리의 일종을 구현해야합니다.
첫 번째 시도는 OR/AND- 연결을 사용하는 것이 었습니다.
tableColumn.visibleProperty().and(Bindings.createBooleanBinding(() -> false));
하지만 다음 예에서 보는 것처럼 작동하지 않습니다.
public static void main(String[] args) {
BooleanProperty a = new SimpleBooleanProperty(false);
BooleanProperty b = new SimpleBooleanProperty(true);
a.bind(b);
System.out.println(a.get());
a.and(Bindings.createBooleanBinding(() -> false));
System.out.println(a.getValue());
}
어쩌면 당신의 누군가가 더 창의적인 아이디어를 가지고 있을지도 모릅니다.
들으, 당신은 단순히 visibleProperty
에 바인딩 additinal을 추가 할 수 있습니다이 경우
질문은 실제로 의미가 없습니다. 'a.bind (b)'는'a'는 항상'b'와 같은 값을 가질 것이라는 것을 의미합니다.'bind'가 의미하는 바를 변경하는 코드를 실행하려고하는 것 같습니다 : 단지 그렇게 할 방법이 없습니다. 'a'의 값을 좀 더 복잡한 표현식에 의존하려면보다 복잡한 표현식에 바인딩하면됩니다. 'a.bind (b.and (Bindings.createBooleanBinding (() -> false)))); ' –