2017-05-22 1 views
1

2 개의 필드 (field1, field2)와 확인란이있는 양식이 있습니다.필드가 JavaFX에서 비활성화 된 경우에만 텍스트 속성을 바인딩하는 방법

확인란이 선택되어 있으면 두 번째 필드의 텍스트를 편집 할 수 있어야합니다. 그렇지 않으면 필드 2의 텍스트가 필드 1의 텍스트와 같아야합니다. 정의를 정의하여 바인딩을 사용하여 어떻게 관리 할 수 ​​있습니까? 초기화 메서드에서?

답변

4

확인란을 선택하지 않으면 두 번째 텍스트 필드에서 텍스트의 바인딩을 해제해야하므로 바인딩과 함께이 작업을 수행 할 수 없습니다. 체크 박스가 처음 선택하지 않으면

field2.editableProperty().bind(checkBox.selectedProperty()); 
checkBox.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> { 
    if (isNowSelected) { 
     field2.textProperty().unbind(); 
    } else { 
     field2.textProperty().bind(field1.textProperty()); 
    } 
}); 

, 당신은

에 추가 호출이 필요합니다

당신이 뭔가를 할 수 있습니다. (텍스트 필드에 사용자가 입력 할 때 다른 사람은 예외를 얻을 것이다)

field2.textProperty().bind(field1.textProperty()); 

텍스트 필드도 처음에 바인딩되어 있는지 확인하십시오.

+0

원더풀! 완전히 내 문제를 해결했습니다! 빠른 응답에 감사드립니다! – BohdanN

관련 문제