【问题标题】:How to set space between rows in a JavaFX TreeTableView?如何在 JavaFX TreeTableView 中设置行之间的空间?
【发布时间】:2019-12-08 20:38:51
【问题描述】:

我试图在 JavaFX TreeTableView 上的行之间留出 5 个像素的空间。我认为更改其中一个 CSS 元素的边距、填充或边框宽度可以修复它,但要么什么都没有发生,要么表格单元格中的文本被移动了。

我发现可能有针对 TreeViews 和 TableViews 的解决方案,例如下面的 StackOverflow 链接,但它们似乎不适用于 TreeTableViews。

How to set space between TableRows in JavaFX TableView?

我当前的 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;
}

【问题讨论】:

    标签: javafx


    【解决方案1】:

    您需要将您的样式应用到 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>> valuehttps://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TreeTableColumn.html#setCellFactory-javafx.util.Callback-)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 2013-12-25
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      相关资源
      最近更新 更多