我有一些困难要改变一些TableView行的外观.该行应显示带有笔划和红色的文本.实际上,我可以用红色显示它,但仍然不能做中风.这是我用来改变行外观的css类:
.itemCancelado {
-fx-strikethrough: true;
-fx-text-fill: red;
}
Run Code Online (Sandbox Code Playgroud)
当用户将项目标记为已取消时,将添加此样式类:
public class ItemCanceladoCellFactory implements Callback<TableColumn, TableCell> {
@Override
public TableCell call(TableColumn tableColumn) {
return new TableCell<ItemBean, Object>() {
@Override
public void updateItem(Object item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? "" : getItem().toString());
setGraphic(null);
int indice=getIndex();
ItemBean bean=null;
if(indice<getTableView().getItems().size())
bean = getTableView().getItems().get(indice);
if (bean != null && bean.isCancelado())
getStyleClass().add("itemCancelado");
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
此处还有另一个问题,标记为已取消的行仅在用户从可观察列表中添加或删除元素时更改颜色.有没有办法可以强制更新TableView?
我将ItemBean类更改为使用BooleanProperty并且它部分解决了:
public class ItemBean {
...
private BooleanProperty cancelado = new SimpleBooleanProperty(false);
...
public Boolean getCancelado() …Run Code Online (Sandbox Code Playgroud) 在JavaFX 2中,使用CSS,是否可以创建2种颜色的背景?想象一下,例如TableCell高度为10像素.我希望前2 px(垂直)为红色,其余8 px(垂直)应保持默认背景颜色.在JavaFX 2中使用CSS是否可行?怎么样?
例:
原始背景:

期望的结果:
(上面的2个像素被红色代替)
感谢您对此的任何暗示!