Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx 如何禁用TableView中的某些行_Javafx_Tableview - Fatal编程技术网

Javafx 如何禁用TableView中的某些行

Javafx 如何禁用TableView中的某些行,javafx,tableview,Javafx,Tableview,我有以下TableView(JavaFX2.2.45): period列表示一天中的小时。数字列是可编辑的。我希望能够在当前小时之前(包括当前小时)禁用行。例如,如果是10:15,我想禁用第1行到第11行。如何使用当前小时(很容易计算并输入变量)来完成此任务 最后,TableView.setRowFactory()可以很好地解决这个问题。我将该类作为参数更新为setRowFactory(为简洁起见省略了泛型): public类LockableRow实现回调{ @凌驾 公共TableRow调用(T

我有以下TableView(JavaFX2.2.45):


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