Javafx 如何禁用TableView中的某些行
我有以下TableView(JavaFX2.2.45):Javafx 如何禁用TableView中的某些行,javafx,tableview,Javafx,Tableview,我有以下TableView(JavaFX2.2.45): period列表示一天中的小时。数字列是可编辑的。我希望能够在当前小时之前(包括当前小时)禁用行。例如,如果是10:15,我想禁用第1行到第11行。如何使用当前小时(很容易计算并输入变量)来完成此任务 最后,TableView.setRowFactory()可以很好地解决这个问题。我将该类作为参数更新为setRowFactory(为简洁起见省略了泛型): public类LockableRow实现回调{ @凌驾 公共TableRow调用(T
period列表示一天中的小时。数字列是可编辑的。我希望能够在当前小时之前(包括当前小时)禁用行。例如,如果是10:15,我想禁用第1行到第11行。如何使用当前小时(很容易计算并输入变量)来完成此任务 最后,
TableView.setRowFactory()
可以很好地解决这个问题。我将该类作为参数更新为setRowFactory
(为简洁起见省略了泛型):
public类LockableRow实现回调{
@凌驾
公共TableRow调用(TableView TableView){
返回新的TableRow(){
@凌驾
受保护的void updateItem(LockableModel项,布尔值为空){
super.updateItem(项,空);
如果(!isEmpty()){
如果(isRowDisabled(tableView,getIndex())){
设置禁用(true);
}否则{
设置禁用(假);
}
}
}
};
}
私有布尔值isRowDisabled(TableView TableView,int thisRow){
ObservableList rows=tableView.getItems();
return(thisRow
在这里,支持表视图的模型是
LockableModel
,它实现了isDisabled()
我首先尝试了的顶部答案中提到的策略,但无法使这些策略起作用。现在我有了一个基于自定义cellFactory和表模型中的BooleanProperty的工作解决方案,但我认为应该使用rowFactory再试一次,这似乎是一个更好的解决方案。
Period Number Number Number
---------------------------------
1 x x x
2 x x x
3 x x x
.
.
24 x x x