我正在尝试开发自动完整文本,它显示了tableview弹出窗口中的建议下拉列表,我遇到了如何在javafx 2.1中隐藏tableview的整个标题列的问题
jew*_*sea 13
将自定义样式表应用于表:
table.getStylesheets().addAll(getClass().getResource("hidden-tableview-headers.css").toExternalForm());
Run Code Online (Sandbox Code Playgroud)
文件hidden-tableview-headers.css放在与加载css资源的类相同的位置并包含以下行:
.column-header-background { visibility: hidden; -fx-padding: -1em; }
Run Code Online (Sandbox Code Playgroud)
该visibility: hidden属性告诉JavaFX不要绘制节点,但仍留有标题所在的空间.由于标题是1行文本高度高,您可以通过设置告诉不可见标题不占用任何空格-fx-padding: -1em;.
解决方案非常简单; 在tableview呈现之后,我们可以获取表头并使其不可见,因此当表视图布局更改时,表头不必重新布局.为了捕获表呈现,我们可以使用width属性更改,并隐藏表头
这是代码:
tableView.widthProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
// Get the table header
Pane header = (Pane)tableView.lookup("TableHeaderRow");
if(header!=null && header.isVisible()) {
header.setMaxHeight(0);
header.setMinHeight(0);
header.setPrefHeight(0);
header.setVisible(false);
header.setManaged(false);
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9830 次 |
| 最近记录: |