2013-03-23 82 views
2

JavaFX - 我有一個類Record with一個方法(和其他功能)public String getName()。我有ListView<Record> listview,這裏是顯示Record代碼的名字:我如何更改ListView中的自定義項目

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; 
    } 
}); 

可惜的是,如果我改變Record的名字是這樣的:

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

單元格文本不列表視圖改變。我應該怎麼做才能解決這個問題?或者我如何改變單元格的文字?

回答

2

最好的(或者大多數JavaFX-ish)方式是將Record類的名稱作爲屬性公開,並將ListCell的textProperty綁定到它。假設你的記錄有一個方法nameProperty()返回的StringPropery實例,您可以用

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

就像一個魅力更換線

setText(item.getName()); 

!非常感謝你! – madox2 2013-03-24 12:24:48

相關問題