gpt4 book ai didi

css - JavaFX,在排序时更改css tablecell

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:09 26 4
gpt4 key购买 nike

我必须根据显示的数据更改 TableCell 的样式类,例如:如果两个连续行中的单元格值相同,则必须突出显示该单元格(即:背景红色)。这必须既能将数据添加到表中又能按任何列排序。

为此,在排序时,我向 tableview.getSortOrder() 添加了一个监听器,并在其 onChange 方法中添加了执行上述操作的逻辑。例如:

public void onChanged(ListChangeListener.Change<? extends TableColumn> change) {
if (change.getList().size() > 0) {
Platform.runLater(new Runnable() {
@Override
public void run() {
/* set some css on tableview cells */
}
});
}
}

问题是这样做的 css 更改不会立即应用到表的下一次刷新。我怀疑是在 Platform.runLater 中执行此操作,但我需要它在更改样式之前按应有的方式对数据进行排序。

我做错了什么吗?是否存在更好的方法来完成我所描述的?

最佳答案

如果你有一个特定的 css 文件并添加它,你就可以这样做。

final String css = getClass.getResource("the_css.css").toExternalForm();

并将其添加到 Platform.runLater 中:

 scene.getStylesheet.add(css);

必要时删除:

scene.getStylesheet.remove(css);

不确定这是否有效,但它应该立即更改背景颜色,而不是在刷新后更改。我希望它能帮助您朝着正确的方向前进。

关于css - JavaFX,在排序时更改css tablecell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20425055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com