javafx - 如何在 JavaFX TreeTableView 中设置行之间的空间?
问题描述
我试图在 JavaFX TreeTableView 上的行之间允许 5 个像素的空间。我认为更改其中一个 CSS 元素的边距、填充或边框宽度可以修复它,但要么什么都没有发生,要么表格单元格中的文本被移动了。
我看到 TreeViews 和 TableViews 可能有解决方案,例如下面的 StackOverflow 链接,但它们似乎不适用于 TreeTableViews。
如何在 JavaFX TableView 中的 TableRows 之间设置空间?
我当前的 CSS:
.tree-table-view {
-fx-table-cell-border-color: transparent;
-fx-background-color: black;
}
/* TreeTableView */
.tree-table-view .column-header,
.tree-table-view .column-header-background .filler {
-fx-background-color: black;
-fx-border-width: 100;
}
.tree-table-cell{
-fx-text-fill: white;
-fx-wrap-text: true;
}
.tree-table-row-cell .tree-disclosure-node .arrow {
-fx-shape: null;
-fx-background-color: null;
-fx-min-width: 0;
-fx-pref-width: 0;
-fx-max-width: 0;
-fx-min-height: 0;
-fx-pref-height: 0;
-fx-max-height: 0;
}
.tree-table-row-cell:expanded .tree-disclosure-node .arrow {
-fx-shape: null;
-fx-background-color: null;
-fx-max-width: 0;
-fx-max-height: 0;
}
.tree-table-row-cell{
-fx-background-color: black;
-fx-font-size: 12px;
-fx-indent: 0;
-fx-cell-size: 50px;
}
.group-tree-table-row-cell{
-fx-background-color: darkgray;
}
.entry-tree-table-row-cell{
-fx-background-color: darkslategray;
}
.tree-table-row-cell:selected{
-fx-background-color: darkblue;
-fx-table-cell-border-color: transparent;
}
解决方案
您需要将您的样式应用于tree-table-cell
样式类(可以在此处找到文档:https ://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html#treetablecell )
在列中每个单元格的底部应用 5 的边框宽度可以在不移动文本的情况下为您提供所需的效果。这可以通过将以下内容添加到样式表来完成。
.tree-table-cell {
-fx-border-width: 0 0 5 0;
}
这也可以通过为 的列设置自定义单元工厂TreeTableView
并为单元提供所需的设置来完成。请参阅TreeTableColumn#setCellFactory(Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>> value
https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TreeTableColumn.html#setCellFactory-javafx.util.Callback- )。
推荐阅读
- android - Aws 放大 cli - 缺少 awsconfiguration.json
- sql - 优化带数据时间过长的SQL查询
- python - 此平台不支持.whl
- angular - 在从不同组件调用该变量后返回未定义的布尔变量
- python - 为什么斐波那契函数的性能时间图不平滑?
- javascript - 使用 CoinDesk API 获取比特币价格指数实时数据
- api - Youtube API 刷新令牌错误 400(OAuth2 错误)
- sqlite - executeSql 将结果作为错误抛出
- sql - Postgresql group by 多行
- matlab - 从 MATLAB 命令行窗口搜索 Simulink MATLAB 功能块代码以查找匹配字符串