gpt4 book ai didi

java - JavaFX 中的 TableView : how to change a single cell's background color if a TableCellTextField is being used?

转载 作者:行者123 更新时间:2023-12-02 02:15:19 26 4
gpt4 key购买 nike

我正在以下列的所有行中创建一个 TableCellTextField:

nameColumn.setCellFactory(TextFieldTableCell.forTableColumn());

我的目的是根据用户的输入更改已编辑单元格的背景颜色。

我找到了几种更改单个单元格背景颜色的解决方案,其中包括覆盖单元格工厂内的 updateItem() 方法。 Here就是一个例子。

但是,我不知道如何将该策略与通过 TextField 使单元格可编辑相结合。

最佳答案

您基本上可以使用 TextFieldTableCell 执行与使用常规 TableCell 相同的操作。请注意,与普通的 TableCell 不同,TextFieldTableCell 已经负责设置文本等。

所以你可以这样做,例如:

PseudoClass specialClass = PseudoClass.getPseudoClass("special");

nameColumn.setCellFactory(tc -> new TextFieldTableCell<MyType, String>(TextFormatter.IDENTITY_STRING_CONVERTER) {
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
boolean condition = /* depends on item and empty.... */
pseudoClassStateChanged(specialClass, condition);
}
});

然后在 CSS 文件中,只需定义单元格所需的样式即可。例如

.table-cell:special {
-fx-background-color: yellow ;
}

关于java - JavaFX 中的 TableView : how to change a single cell's background color if a TableCellTextField is being used?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370600/

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