JavaFX TableView背景图片

时间:2014-12-10 13:24:42

标签: css image background javafx tableview

好的,所以我在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。我没有在堆栈跟踪中发现图像或类似的任何错误,但背景没有显示出来。

任何帮助将不胜感激。谢谢大家!

乔恩

1 个答案:

答案 0 :(得分:1)

要在后台查看图像,您需要将其添加到CSS文件中:

.table-row-cell {
  -fx-background-color: transparent;
}

不需要细胞的样式。