我们通过TableView.getColumns来获取TableView的所有列。
CellValueFactory指的是TableView每一列里填充的数据。我们这里简单的使用PropertyValueFacotry。后面的要对应你DownloadData中的Property属性名。
CellFactory我们可以指定TableView中某一个Cell的视图类型。大家可以看到我用到了个ProgressBar。
另外CellFactory,JavaFX中自带部分的CellFactory,详细的大家可以在javafx.scene.control.cell包中找到。
接着我们通过创建DownloadData,设置数据,并添加到ObservableList中即可。
如下图所示:

上面是TableView的数据填充。
另外,JavaFX中的事件也不像Java或者Android里面用onItemClick之类的来执行某一项的点击。
JavaFX中的控件的很多事件有着鲜明的特色,就是使用Property的ChangeListener来执行。
如下:
mMenuTree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
mMenuTree.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
@Override
public void changed(Observableva lue ov, Object t, Object t1) {
int index = mMenuTree.getSelectionModel().getSelectedIndex();
switch (index) {
case 1: //所有任务
refreshTableData(0, 1, 2);
break;
case 2: //正在下载
refreshTableData(0);
break;
case 3: //已完成
refreshTableData(2);
break;
case 4: //垃圾箱
refreshTableData(-1);
break;
}
}
});
这里是TreeView的事件,通过监听selectItemProperty的改变来做相应的操作,同理,TableView也是一样的通过监听selectXXXProperty属性来操作Item的点击等事件。