2016-11-21 1 views
1

정수 변수가 변경 될 때마다 borderpane의 왼쪽 속성을 특정 노드로 변경하는 방법은 무엇입니까? 어떤 유형의 ObjectProperty를 사용할 것인가? 정수형 변수를 청취 할뿐만 아니라 이것을 바인딩 할 수 있습니까? getLeftNodeForValue(...)가주고 정수 값에 해당하는 노드를 검색하는 단순한 방법이다Borderpane 왼쪽 속성을 JavaFX 노드로 바꾸는 방법

답변

1
BorderPane border = new BorderPane(); 
IntegerProperty intProp = new SimpleIntegerProperty(); 

border.leftProperty().bind(Bindings.createObjectProperty(
    () -> { 
     int value = intProp.get(); 
     Node node = getLeftNodeForValue(value); 
     return node ; 
    }, 
    intProp)); 

.

또는 단지 바인딩 대신 리스너를 사용

intProp.addListener((obs, oldValue, newValue) -> 
    border.setLeft(getLeftNodeForValue(newValue.intValue()))); 
관련 문제