在Swing中,JTable.getTableHeader().getBackground()
生成Color(包含列标题的颜色)。
在TableView的Javafx中是否存在等价物?
答案 0 :(得分:0)
在TableView的Javafx中是否存在等价物?
不幸的是,JavaFX没有提供相当于getTableHeader().getBackground()
但是.....你仍然可以通过臭名昭着的node lookup
访问它使用此方法,您可以获得Region
的不同TableView
,这可以让您操纵它们。
重要的是要注意,如果CSS尚未应用于Scene
,则查找将返回null,这通常在呈现之前不会发生。有解决方法,但它们并非全部保证,例如:
applyCSS
primaryStage.show();
BoundsInParentProperty
并在那里执行操作如果遇到这个问题,有几个不同的答案和解决方法可以在SO上找到它
下图显示了可用于执行此操作的选择器:
您感兴趣的部分是标题,我使用以下内容设置背景:
Set<Node> tableColumnHeaders = tableView.lookupAll(".column-header");
for(Node columnHeader : tableColumnHeaders){
if(columnHeader instanceof Region){
((Region)columnHeader).setBackground(
new Background(new BackgroundFill(Color.GREEN, CornerRadii.EMPTY, Insets.EMPTY)));
}
}
在这个逻辑中你可以获得有关背景的信息,但是正如fabian在评论中建议的那样,你应该知道背景可能并不总是一种颜色