【发布时间】:2013-11-09 06:05:54
【问题描述】:
我正在为我的 TableColumns 创建一个自定义标题,它是列的标签加上一个允许用户执行搜索的 TextField。我这样设置列标题:
getColumns().addListener(new ListChangeListener<TableColumn<S, ?>>() {
@Override
public void onChanged(final ListChangeListener.Change<? extends TableColumn<S, ?>> change) {
while (change.next()) {
Label label;
TextField search;
VBox graphic;
for (TableColumn<S, ?> column : change.getAddedSubList()) {
label = new Label(column.getText());
search = new TextField();
graphic = new VBox();
graphic.getStyleClass().add("k-column-graphic");
graphic.getChildren().addAll(label, search);
column.setGraphic(graphic);
}
}
}
});
所以显示的是列的图形。我正在使用以下 CSS(图形本身有一个“k-column-graphic”CSS 类,而 TableView 有一个“k-table-view”CSS 类)
/** Hide default text label in KTableView */
.k-table-view .column-header > .label {
-fx-content-display: graphic-only;
}
.k-column-graphic {
-fx-alignment: center-left;
-fx-spacing: 5;
-fx-padding: 2;
}
这很好用,但我还允许通过启用 TableView.setTableMenuButtonVisible(true); 属性来隐藏列,该属性添加了一个按钮来轻松隐藏列。
每当我尝试隐藏一列时,它都会成功隐藏,但图形(标签/文本字段)仍然存在。两者的宽度似乎都是 0 或 1,而且很小,但您仍然可以看到它们。
如何通过 CSS 或在我的代码中的某个位置,使其到达 TableColumn 的图形节点也将隐藏的位置?
【问题讨论】:
标签: java css javafx tableview visibility