使用FX-CSS在JavaFX Tableview中隐藏行?

使用FX-CSS在JavaFX Tableview中隐藏行?,javafx,tableview,javafx-css,Javafx,Tableview,Javafx Css,我遇到了这个问题,我有一个JavaFX应用程序,它使用由TableColumns组成的Tableview,并由自定义css设置样式 一切都很好,我可以顺利地将数据添加到我的表/单元格等。但是,如果我只想向用户提供部分数据,css解决方案将是最佳的(而不是操纵数据以满足用户需求) 我一直在研究标准css,发现“display:none”将是隐藏选定行但保持数据完整的最佳解决方案,但JavaFX似乎不支持这一点 我似乎找不到一个好的解决方案,除了手动修改单元格数据以满足需要的黑客方法 我使用setC

我遇到了这个问题,我有一个JavaFX应用程序,它使用由TableColumns组成的Tableview,并由自定义css设置样式

一切都很好,我可以顺利地将数据添加到我的表/单元格等。但是,如果我只想向用户提供部分数据,css解决方案将是最佳的(而不是操纵数据以满足用户需求)

我一直在研究标准css,发现“display:none”将是隐藏选定行但保持数据完整的最佳解决方案,但JavaFX似乎不支持这一点

我似乎找不到一个好的解决方案,除了手动修改单元格数据以满足需要的黑客方法

我使用setCellFactory来突出显示不同颜色的文本或单元格,效果很好。但是,如果不显示单元格而不破坏我的应用程序的整体体验,似乎没有任何解决方案能够奏效

有没有人遇到过类似的问题并找到了切实可行的解决方案?

如果您想使用CSS 每个
节点
都有一个
可见性
css属性

所以我会尝试:

visibility: hidden;
但我不知道它是否隐藏了整行,或者如果出现问题,您可以在每个单元格
中隐藏内部
标签

编辑: 那么这个解决方案呢:

-fx-text-fill: transparent;
对于每行或
标签

此“隐藏”文本,但行将保持可见
没有测试,只是一个想法

编辑(2): 这有助于:

-fx-cell-size: 0;
对于行中的每个单元格

但是这是您自己想法的一部分

没有
-fx visibility
CSS属性,但是您可以通过使用以下组合来解决它:

-fx-pref-width: 0;
-fx-opacity: 0;

为什么要隐藏选定的行?为什么仅仅从项目列表中删除它是不够的?要显示部分数据,通常需要将表数据包装在一个表中,并更改筛选列表上的谓词。这样,您的基础数据保持不变,但显示的数据可能会有所不同。是的,这是我目前的解决方案,但我将不得不使用非常复杂的方法来处理这些数据(折叠一些消息等),并希望CSS可以使这项工作更容易、更高效。然而,JavaFX-css似乎没有css解决方案。应用逻辑来操作css要比应用逻辑来操作
FilteredList
困难得多。
FilteredList
就是为这个用例设计的;CSS不是。所以我试着使用它,看起来“可见性:塌陷;”至少在操纵整个列时起作用。我将尝试使用它来查看是否可以以相同的方式操纵单个行。谢谢仔细观察,无论是这个修复还是“可见性:隐藏|折叠”都不会删除它实际使用的空间,这使得在我的情况下使用它毫无用处……我想你误解了我的意图。我希望“行”在视觉上消失。我正在尝试将您编辑的实现与将实际单元格大小设置为0结合使用,但运气不佳。因此,我的想法已不复存在:/,但您使用0高度的方式可以解决问题。因此,尝试将
-fx cell size
设置为0@jensd为什么都引用旧的JavaFX CSS引用?如果您使用Java 8,他们会添加更多内容,请查看以下内容: