请问如何隐藏/显示ControlsFX的SpreadsheetView中的特定列。我不想完全从Grid(GridBase)中删除它。例如。如果我隐藏它,我可以再次显示它而不重新填充值。
类似的东西:
initial:
+----+----+----+
| A | B | C |
+----+----+----+
| 1 | 2 | 3 |
+----+----+----+
hide column 'B':
+----+----+
| A | C |
+----+----+
| 1 | 3 |
+----+----+
show column 'B':
+----+----+----+
| A | B | C |
+----+----+----+
| 1 | 2 | 3 |
+----+----+----+
答案 0 :(得分:1)
当我在ControlsFX google群组中回复您时,此功能现在无法在ControlsFX 8.40.12中实现。
但是,我在SpreadsheetView中进行了大量改进,包括隐藏行/列。能够对电子表格进行排序。能够添加一些过滤器等。
这些功能等待合并到ControlsFX中,如果您想尝试可以分叉我的存储库:https://bitbucket.org/controlsfx/controlsfx/pull-requests/627/new-features-for-the-spreadsheetview/diff#comment-None
答案 1 :(得分:0)
我查看了SpreadsheetColumn规范,它没有hide或visible方法。您可以使用技巧更改SpreadsheetColumn宽度大小。我已尝试过以下方法,我认为它正在发挥作用。你能尝试下面的方法吗?示例代码部分:
// This sample column:
SpreadsheetColumn column = spreadsheetView.getColumns().get(1);
double oriWidth = column.getWidth();
columnHide = false;
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if(!columnHide){
column.setMaxWidth(0);
column.setMinWidth(0);
columnHide = true;
}else{
column.setMinWidth(oriWidth);
columnHide = false;
}
}
});