刷新 javaFX2.0 数据视图(TableView/ListView/TreeView)

 

 

数据视图(TableView/ListView/TreeView)通过监听其ObservableList中的项(items)的变化来更新视图.当项发生变化时, 这些视图才得以更新. 这里的变化是指项的增删, 但项的内容(如某个字段)在外部发生变化, 这些视图并不会自动更新.

 

以下是两种动态更新数据视图的方法:

 

//最简单的方法是通过改变视图的items强制更新数据视图(TableView/ListView/TreeView). 如在items中增加并删除一个项(item)或复制items并添加到视图中.
//这里以TableView为例
public void reflashTable(){
	table.getItems().add(new Item());//方法1.1
//	table.getItems().setAll(table.getItems());//方法1.2
}

//方法二:
//如果Item的内容变化是可监听的(即当内容发生变化时能够向所有监听者派发变化事件).
//这里需要自定义一个CellFactory, 该CellFactory在返回一个自定义的Cell--CustomCell,CustomCell监听Item内容的变化(不是Items),然后更新Cell.

//如果Item的属性是可observable的(即由javafx.beans.Observable子类实现的),那么这些属性就可以作为事件源来派发事件(通过javafx.beans.ObservableaddListener()方法).
 

 

 

 

 

 

你可能感兴趣的:(ListView,tableview,JavaFX,items,treeview)