fxml - 如何在 TreeTableView 中显示行的网格线

标签 fxml javafx-8 java-8

我有以下 FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="600.0" prefWidth="1000.0" stylesheets="@../css/fxmlDemo.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxmldemo.controller.MainController">
    <children>
        <TreeTableView fx:id="treeTableView" prefHeight="600.0" prefWidth="1000.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns:fx="http://javafx.com/fxml">
            <columns>
                <TreeTableColumn fx:id="nameColumn" prefWidth="600.0" text="Name" />
                <TreeTableColumn fx:id="sizeColumn" prefWidth="100.0" text="Size" />
                <TreeTableColumn fx:id="lastModifiedColumn" prefWidth="300.0" text="Modified" />
            </columns>
        </TreeTableView>
    </children>
</AnchorPane>

在我的 fxmlDemo.css 文件中,我尝试了如下操作:

* { 
  -fx-border-style: solid;
}

tree-table-view { 
  -fx-border-style: solid;
}

tree-item { 
  -fx-border-style: solid;
}

第一个在 FXML 中的所有内容周围放置一个边框,其他两个什么都不做。

我想要的是像 Excel 电子表格一样显示网格线。我使用的代码与 this 中看到的非常相似例如,但我的已经修改为实际工作:)

Here是指向 Java FX CSS 引用指南的链接,但它不包含有关 TreeTableView 或其子组件的信息。

最佳答案

使用以下 CSS,我能够将 TreeTableView 配置为看起来与 TableView 非常相似。

.tree-table-row-cell {
    -fx-background-color: -fx-table-cell-border-color, -fx-control-inner-background;
    -fx-background-insets: 0, 0 0 1 0;
    -fx-padding: 0.0em;
    -fx-text-fill: -fx-text-inner-color;
}
.tree-table-row-cell:selected {
    -fx-background-color: -fx-focus-color, -fx-cell-focus-inner-border, -fx-focus-color;
    -fx-background-insets: 0, 1, 2;
}

.tree-table-row-cell:odd {
    -fx-background-color: -fx-table-cell-border-color, derive(-fx-control-inner-background,-5%);
    -fx-background-insets: 0, 0 0 1 0;
}

.tree-table-row-cell:selected:odd {
    -fx-background-color: -fx-focus-color, -fx-cell-focus-inner-border, -fx-focus-color;
    -fx-background-insets: 0, 1, 2;
}

请记住,您可以在场景中删除和添加样式表,这将加快您的开发时间。

关于fxml - 如何在 TreeTableView 中显示行的网格线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704598/

相关文章:

java - 通过 FXCollections 从 FXML 创建集合

javafx-2 - Kotlin 中的 TableView 回调

java - IDE 在 Debug模式下在 java fx 应用程序的断点处挂起

java - 查找流中的哪个元素与 allmatch 中的给定谓词不匹配

mysql - 将 java.time 作为 tinyblob 持久化到 Date

JavaFX FXML 加载器

java - 在 JavaFX 场景和非 JavaFX 场景之间切换

当我将 font aweasome 添加到我的 fxml 文件时出现 java.lang.NoClassDefFoundError

java - AES javafx 程序在按下加密按钮时显示错误

java - 使用 Java 8 在目录和子目录中查找文件