TreeTableView在javaFX中具有不同大小的节点

时间:2016-08-03 09:03:52

标签: java css javafx treetableview

我有一个基于TreeTableViews及其行的问题。 我创建了一个我命名为Component的对象的treetableview,我有3个类的组件,我将命名为A,B和C. 在我的项目中,B对象包含在A上,C对象包含在B对象上。 我能够使用这3个级别的组件显示TreeTableView,但现在我想在此表中添加一些CSS以便能够具有某些特性:

- 首先,我想要一个对象'大小要比B对象大,对C来说也是一样的,对于这个基于我在互联网上看到的T尝试这样的东西:

.tree-table-cell {
     -fx-font-size: 11pt;
}

.tree-table-cell:sub-tree-item {
    -fx-font-size: 9pt;
}

但它似乎无法正常工作......

- 然后我希望能够在每个A组件之间使用分隔符,只是为了表的可见性

- 最后我希望所选项目及其所有树节点(如果选择C表示C元素+其父B +其父A)为粗体或直接识别它。为此我尝试在这个类上应用一些简单的CSS:

.tree-item:selected {
     -fx-font-weight: bold;
}

没有任何成功......

事实上,我无法像我想的那样操纵我的TreeItems(在TreeItem中添加一些StyleSheets类是不可能的)。

我希望我足够清楚。 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

我使用了TreeTableView并根据不同的标准成功应用了样式。我的方法是将样式应用于TreeTableRow(但我认为单元格也可以工作)。这行不容易引用(至少,我没有看到一个简单的方法)。我访问它的一种方法是添加一个行工厂。在工厂里,我添加了拖放处理程序。但是,对于样式,我使用自定义单元格(因为我需要它们进行编辑)。在这些自定义单元格的updateItem方法中,我会得到行并修改样式。这是必要的,因为行是虚拟化和重用的。我发现我必须检查"空" updateItem调用期间的行并删除样式(在我的情况下,为&#34包含红色边框;无效"项目)。

对于CSS中的伪类,我建议您确保使用正确的类。如果您没有使用内置伪类,则必须在代码中创建一个,然后将其注册到您尝试设置样式的类中。我找到了一个website有一些信息,但是如果你搜索我确定那里有更多信息。

我不认为该项目本身支持样式(如您所述)。我将其视为模型/数据类(与UI相比)。