2013-03-23 2 views
2

JavaFX - 메서드 및 기타 기능이있는 클래스 레코드가 있습니다 public String getName(). 나는 ListView<Record> listview이 여기 Record 표시하는 코드입니다ListView에서 사용자 정의 항목을 변경하는 방법

Record record = listview.getSelectionModel().getSelectedItem(); 
record.setName("New Name"); 

셀의 텍스트 목록보기에서 변경되지 않습니다 : 이런의 이름의 이름 난 Record 변경하는 경우 Unfortunatelly

listview.setCellFactory(new Callback<ListView<Record>, ListCell<Record>>() { 
    public ListCell<Record> call(ListView<Record> param) { 
     final ListCell<Record> cell = new ListCell<Record>() { 
      @Override 
      public void updateItem(Record item, boolean empty) { 
       super.updateItem(item, empty); 
       if (item != null) { 
        setText(item.getName()); 
       } 
      } 
     }; 
     return cell; 
    } 
}); 

을 '. 이 문제를 해결하려면 어떻게해야합니까? 아니면 어떻게 셀의 텍스트를 다르게 바꿀 수 있습니까?

답변

2

가장 좋은 (또는 대부분의 JavaFX-ish) 방법은 Record 클래스의 이름을 속성으로 표시하고 ListCell의 textProperty를 바인딩하는 것입니다. 당신의 기록을 가정 할 방법 nameProperty()StringPropery의 인스턴스를 반환을 가지고, 당신은 마법처럼

textProperty().bind(item.nameProperty()); 
+0

작품으로 선

setText(item.getName()); 

를 대체 할 수있는! 고마워요! – madox2

관련 문제