2013-08-13 3 views
1

이것은 내 첫 번째 게시물이기 때문에 잘못 입력했거나 명확하지 않은 항목이 있으면 미리 죄송합니다.Java fx 바인딩 스타일

javafx에는 약 5 개의 열이있는 트리 테이블보기가 있으며 첫 번째 열은 단순히 개체 이름의 문자열을 표시합니다. set cell value factory 메소드에서 나는 아래와 같이 객체의 name 속성을 얻는다.

column.setCellValueFactory(new Callback<CellDataFeatures<Foo, String>, ObservableValue<String>>(){ 
    @Override 
    public ObservableValue<String> call(CellDataFeatures<Foo, String> row) { 
     if (row.getValue().getValue() instanceof Foo){ 
      final Foo bar = (Foo)row.getValue().getValue(); 
      return bar.getNameProperty(); 
     } 
     return null; 
    } 
}); 

스타일 속성에 바인딩하여 표에 표시된대로이 문자열의 색상을 변경하고 싶습니다. 문자열을 텍스트 개체로 변경하려고 시도했지만 스타일 속성을 바인딩 할 수 없습니다. 내가

String style = "-fx-text-fill: red" 

의 라인을 따라 푸 객체에 뭔가 스타일 속성을 결합 할 수있는 방법은 내가 프로그래밍 방식으로, 그것은뿐만 아니라 테이블에 업데이트됩니다 스타일을 변경할 때마다 그 방법이 있나요?

또 다시 불분명 한 내용에 사과드립니다.

답변

2

스타일과 같은 셀 비주얼에 영향을 주려면 cellFactory (cellValueFactory 이외에)를 정의해야합니다.

  1. StringProperty로 정의 된 styleProperty를 Foo 등을 추가 달성 "푸 객체에 뭔가 스타일 속성을 결합"하는

    한 가지 방법입니다.

  2. 셀 팩터에서 제공하는 셀에서 셀에 연결된 foo 객체가 변경되면 셀의 styleProperty를 바인딩 해제 한 다음 셀의 styleProperty를 Foo 항목의 styleProperty에 바인딩합니다.

그런 다음 Foo 객체의 styleProperty를 수정하면 TreeTable의 foo 표시 스타일이 자동으로 동시에 변경됩니다.