我编写了使用Tableview
的应用程序,我想在其中表示和编辑数据列表。
我有数据模型。像
这样的东西public class CModel
{
private List<CItem> m_lstItems;
public List<CItem> getList()
{
return m_lstItems;
}
}
public class CItem
{
private String m_sName;
private String m_sType;
public void setName(String s)
{
m_sName = s;
}
public String getName()
{
return new String(m_sName);
}
}
如果我需要绑定我的数据模型,我可以创建observableList()
。但这不允许我观察项目编辑。为了使编辑成为可能,我需要从CItem
继承Observable
成员。如果我将其声明为Property
TableView
,则会观察项目更改。
问题是如果CModel
是纯数据模型,我不应该从Observable
继承它(因为数据及其视图应该是分开的)。
如何用Observable
或最佳方法包装每个列表项?
答案 0 :(得分:-1)
对于每个列,创建一个CellValueFactory
,它将您的POJO属性包装在JavaFX属性中。下面的示例在具有名为name的String属性的虚构Person对象上执行此操作:
TableColumn<Person, String> nameColumn = new TableColumn<>("Name");
nameColumn.setCellValueFactory(param -> new SimpleStringProperty(param.getValue().getName()));