我有一个样本表。
我需要根据输入显示一组表格单元格的边框,如下图所示:
关键是,边框位置是动态的,它基于表的输入。我的表格数据可能很大,可以容纳25列和500行。我所拥有的信息是开始单元格和结束单元格的行索引和列索引。
我无法使用updateItem()
函数,因为updateItem()
中未显示的单元格将不会调用tableview
。加载表后,我无法访问tablecell
对象。
有没有办法在加载tableview之后动态setStyle
到tableCells?
答案 0 :(得分:0)
感谢提供了不同见解的评论。 我解决了这样的问题,
计算了我需要为其绘制边框的左上索引和右下索引。并在表单元格的updateItem()方法中使用了这些值,
`if(tableCol.getTableView()!= null){ A4CalculationIndexValues a4CalculationIndexValues = A4Calculation.A4LayoutDetails.get(tableCol.getTableView()。getId()); if(a4CalculationIndexValues!= null){ 整数startRow = a4CalculationIndexValues.startRowColumnIndex.getRow(); 整数startColumn = a4CalculationIndexValues.startRowColumnIndex.getColumn(); 整数endColumn = a4CalculationIndexValues.endRowColumnIndex.getColumn(); 整数endRow = a4CalculationIndexValues.endRowColumnIndex.getRow();
if (getIndex() == startRow && columnIndex >= startColumn && columnIndex <= endColumn) {
if (getStyle().equalsIgnoreCase(""))
setStyle("-fx-border-width: 1 2 3 4; -fx-border-color: red white white white");
}
if (getIndex() >= startRow && getIndex() <= endRow && columnIndex == startColumn) {
if (getStyle().equalsIgnoreCase(""))
setStyle("-fx-border-width: 1 2 3 4; -fx-border-color: white white white red");
}
if (getIndex() == endRow && columnIndex >= startColumn && columnIndex <= endColumn) {
if (getStyle().equalsIgnoreCase(""))
setStyle("-fx-border-width: 1 2 3 4; -fx-border-color: white white red white");
}
if (getIndex() >= startRow && getIndex() <= endRow && columnIndex == endColumn) {
if (getStyle().equalsIgnoreCase(""))
setStyle("-fx-border-width: 1 2 3 4; -fx-border-color: white red white white");
}
}
}`