当 NatTable 不在焦点时如何将选择突出显示为灰色
How to gray selection highlight when NatTable not in focus
某些列表和表格在失去键盘焦点时会将其选择变灰。
在存在多个 lists/tables 的情况下,这有助于向用户传达哪个选择处于活动状态。
有没有使用 NatTable 的简单方法?
到目前为止,我想出的最好办法是随着焦点来来去去,在 DisplayMode.SELECT
的不同属性之间切换——但我不确定在 NatTable.configure()
之后我是否可以做到这一点已调用。
是的,您可以在调用 NatTable#configure()
后动态更改配置属性。这是动态变化的常用方法。另一种方法是为特殊标签配置选择样式,并仅在 table 处于活动状态时应用该标签。这种方法可以在这个例子中看到。
在@DirkFauth 的回答之后,我已经开始工作了。这个答案包括一些细节。
table配置好NatTable.configure()
后,可以不使用NatTable.addConfiguration(IConfiguration)
修改配置,而是调用IConfiguration.configureRegistry(IConfigRegistry)
修改配置。例如:
myConfiguration.configureRegistry( myTable.getConfigRegistry() )
在 configureRegistry() 的实现中,您可以设置选定单元格和定位单元格的样式:
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE,
selectedStyle, DisplayMode.SELECT, GridRegion.BODY);
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE,
anchorStyle, DisplayMode.SELECT,
SelectionStyleLabels.SELECTION_ANCHOR_STYLE);
当 table 处于非活动状态时,selectedStyle
和 anchorStyle
可以修改为它们通常设置的克隆。例如:
private static Color myInactiveColor = ...;
public static Style makeInactiveBodyCellStyleFrom(@Nonnull Style style) {
Style rv = style.clone();
rv.setAttributeValue( CellStyleAttributes.BACKGROUND_COLOR,
myInactiveColor );
return rv;
}
可以对所选行和列的样式进行类似的工作headers。
某些列表和表格在失去键盘焦点时会将其选择变灰。
在存在多个 lists/tables 的情况下,这有助于向用户传达哪个选择处于活动状态。
有没有使用 NatTable 的简单方法?
到目前为止,我想出的最好办法是随着焦点来来去去,在 DisplayMode.SELECT
的不同属性之间切换——但我不确定在 NatTable.configure()
之后我是否可以做到这一点已调用。
是的,您可以在调用 NatTable#configure()
后动态更改配置属性。这是动态变化的常用方法。另一种方法是为特殊标签配置选择样式,并仅在 table 处于活动状态时应用该标签。这种方法可以在这个例子中看到。
在@DirkFauth 的回答之后,我已经开始工作了。这个答案包括一些细节。
table配置好NatTable.configure()
后,可以不使用NatTable.addConfiguration(IConfiguration)
修改配置,而是调用IConfiguration.configureRegistry(IConfigRegistry)
修改配置。例如:
myConfiguration.configureRegistry( myTable.getConfigRegistry() )
在 configureRegistry() 的实现中,您可以设置选定单元格和定位单元格的样式:
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE,
selectedStyle, DisplayMode.SELECT, GridRegion.BODY);
configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE,
anchorStyle, DisplayMode.SELECT,
SelectionStyleLabels.SELECTION_ANCHOR_STYLE);
当 table 处于非活动状态时,selectedStyle
和 anchorStyle
可以修改为它们通常设置的克隆。例如:
private static Color myInactiveColor = ...;
public static Style makeInactiveBodyCellStyleFrom(@Nonnull Style style) {
Style rv = style.clone();
rv.setAttributeValue( CellStyleAttributes.BACKGROUND_COLOR,
myInactiveColor );
return rv;
}
可以对所选行和列的样式进行类似的工作headers。