繁体   English   中英

JavaFX 以编程方式突出显示选定的 tableview 行

[英]JavaFX programmatically highlight selected tableview row

我有一个表格视图,它根据行列之一的值设置行的背景。 这是有效的,我正在使用 RowFactory 进行如下操作:

`

tv.setRowFactory(tv -> new TableRow<ticketRow>() 
{
    @Override
    protected void updateItem(ticketRow p_ticketRow, boolean empty)
    {
        super.updateItem(p_ticketRow, empty);

        if ( p_ticketRow != null )
        {
            if (!(p_ticketRow.getTBP().trim().equalsIgnoreCase("0.00")))
            {
                setStyle("-fx-font-size: 18 !important; -fx-background-color: #ffb2b2; -fx-text-fill : #000000; -fx-font-size: 18 !important; -fx-selection-bar: blue !important;");
            }
            else
            {
                setStyle( ".tree-table-row-cell:odd {-fx-background-color: #f9f9f9; -fx-text-fill : #000000; -fx-font-size: 18 !important; -fx-selection-bar: blue;}");
            }
        }
        else
        {
            setStyle( "-fx-font-size: 18 !important; -fx-selection-bar: blue; .tree-table-row-cell:odd {-fx-background-color: #f9f9f9; -fx-text-fill : #000000; -fx-font-size: 18 !important;}; .tree-table-row-cell:even {-fx-background-color: #ffffff; -fx-text-fill : #000000; -fx-font-size: 18 !important;}" ); // -fx-font-size: 18;}" );
        }
    }
});

`

但是,每当我 select 行其背景已由 if 子句设置时,所选行颜色不会显示。 该行没有突出显示。 背景颜色似乎优先。

当由于满足列值条件而已经设置了背景时,如何使选定的行突出显示?

谢谢

我将首先承认我对 CSS 了解不多,而且我也刚刚开始使用 JavaFX。 无论如何,在浏览了更多 Stackoverflow 帖子后,我遇到了一个类似于我的问题/解决方案,解决方案是使用 -fx-control-inner-background: 和 -fx-control-inner-background-alt:

老实说,我不知道这些是什么或它们是如何工作的,但我使用它们而不是 -fx-background-color: 并且有效。

问题未解决?试试以下方法:

JavaFX 以编程方式突出显示选定的 tableview 行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM