好的,所以我在JavaFX中创建了一个tableview,我理解除了全局背景之外如何格式化它的一切。基本上,我希望tableview显示和使用颜色格式化的文本,以便我使用cellfactories格式化它们,但我希望tableview的背景是我拥有的图像。有没有办法在tableview本身上放置一个大的背景图像?我试图使细胞背景透明,但也没有帮助。这是我的代码的嗤之以鼻。
Callback<TableColumn<TransactionWrapper, String>, TableCell<TransactionWrapper, String>> searchHighlight = new Callback<TableColumn<TransactionWrapper, String>, TableCell<TransactionWrapper, String>>()
{
@Override
public TableCell<TransactionWrapper, String> call(
TableColumn<TransactionWrapper, String> param)
{
return new TableCell<TransactionWrapper, String>()
{
@Override
protected void updateItem(String item, boolean empty)
{
if (!empty)
{
setStyle("-fx-background-color:transparent");
setText(item);
}
}
};
}
};
这是我在我的单元格上使用的回调动态格式化它们。
#transactionList
{
-fx-background-image: url("file:/C:/Money/images/transactionsBG.jpg");
}
这就是我用它来设置图像背景的CSS。 transactionList是tableview的fx id。我没有在堆栈跟踪中发现图像或类似的任何错误,但背景没有显示出来。
任何帮助将不胜感激。谢谢大家!
乔恩
答案 0 :(得分:1)
要在后台查看图像,您需要将其添加到CSS文件中:
.table-row-cell {
-fx-background-color: transparent;
}
不需要细胞的样式。