기본 디바이스 드라이버와 상호 작용할 수있는 getters/setter 클래스가 있습니다. getter는 장치에서 데이터를 읽고 setter는 데이터를 장치에 씁니다. 나는이 클래스에 FX 프로퍼티를 추가하여 GUI 컨트롤에 바인딩했다. JavaBeanPropertyBuilder를 사용하여 속성을 빌드하면 작동합니다. 하지만 속성 값은 GUI 측뿐만 아니라 장치 측에서 변경 될 수 있으므로 타이머로 속성을 업데이트해야하며 모든 바인딩을 업데이트하기 위해 속성을 무효화하고 싶습니다. 가능한가? 코드 예제와JavaFX 속성을 강제로 무효화합니다.
UPD : 이제
class MyDevice {
public double getSpeed() {
return (double)driver.getParameter("speed");
}
public void setSpeed(double value) {
driver.setParameter("speed", value);
}
private DoubleProperty speed = new JavaBeanDoublePropertyBuilder().bean(this).name("speed").build();
public DoubleProperty speedProperty() {
return speed;
}
}
, 나는 GUI 컨트롤에 MyDevice::speedProperty
을 바인딩하고 값이 드라이버 측에서 변경된 경우 나 등록 된 모든 리스너 및 업데이트를 처리 강제로 speedProperty.invalidate()
뭔가를 원하는 바인딩. (예를 들어 타이머가 장치 상태를 쿼리하여 드라이버 측의 변경 사항을 알 수 있지만 사용할 수있는 모든 매개 변수가 아닙니다.)