[英]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: 并且有效。
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.