2016-08-03 82 views
0

我有一个基于TreeTableViews及其行的问题。 我创建了一个名为Component的对象的treetableview,并且我有3个组件类,我将命名为A,B和C. 在我的项目中,B对象包含在A中,C对象包含在B中对象。 我能够显示TreeTableView与这3个级别的组件,但现在我想在这个表中添加一些CSS,以便能够具有某些特征:javaFX中具有不同节点大小的TreeTable查看原图(大图)

- 首先,我想A对象的大小要优于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中是不可能的)。

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

回答

0

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

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

我不认为该物品本身支持样式(如您所述)。我更多地将它看作模型/数据类(与UI相比)。

相关问题