跳到主要内容

Columns

在ChatGPT中打开
24.00
Java API

Table 类利用 Column 类来处理其中数据列的创建。该类具有广泛的功能,允许用户充分自定义每一列中显示的内容。 要向 Table 添加 Column,请使用其中一个接受提供者作为参数的 addColumn 工厂方法。

值提供者

值提供者是一个函数,负责将底层数据集中的原始数据转换为适合在特定列中显示的格式。该函数由用户定义,接受一行数据类型(T)的实例,并返回该行关联列中展示的值。

要在列上设置值提供者,请使用其中一个接受提供者作为参数的 addColumn 工厂方法:

    List<String> columnsList = Arrays.asList("athlete", "age", "country", "year", "sport", "gold", "silver", "bronze", "total");

for (String column : columnsList) {
table.addColumn(column, (JsonObject person) -> {
JsonElement element = person.get(column);
if (!element.isJsonNull()) {
return element.getAsString();
}
return "";
});
}

在此示例中,列将尝试从 JSON 对象中访问数据,只有在数据不为 null 时才呈现。

固定方向

列固定是一个功能,允许用户将列“固定”到表的特定侧面,以增强可见性和可访问性。当某些列(例如标识符或重要信息)需要在水平滚动表时保持可见时,这非常有用。

显示代码

可用于固定列的方向有三种:

  • PinDirection.LEFT:将列固定在左侧。
  • PinDirection.RIGHT:将列固定在右侧。
  • PinDirection.AUTO:列根据插入顺序出现。

固定可以通过编程设置,允许用户根据用户交互或应用逻辑更改固定方向。

对齐

列对齐定义了数据在列中的水平位置。这将影响数据值的显示方式,为用户提供有关信息性质的视觉指导。

显示代码

Table 组件支持三种主要对齐选项:

  • Column.Alignment.LEFT:适合文本或描述性数据,保持左侧流动是直观的。强调内容的起始点时很有用。
  • Column.Alignment.CENTER:理想用于数值或分类数据,期望创建平衡的展示效果。生成视觉上居中的显示。
  • Column.Alignment.RIGHT:通常用于数值数据,特别是在数字的大小或精确度很重要时。将数据向右对齐,以实现自然的阅读流。

在上述示例中,Cost 的最后一列已右对齐,以提供更明显的视觉区分。

可见性

可以设置 Column 的可见性,以确定它是否将在表中显示。这在确定是否显示敏感信息等情况下非常有用。

使用 setHidden() 方法,如下所示,在 Column 上设置此属性:

table.addColumn("Credit Card", Customer::getCreditCardNumber).setHidden(true);

可导航属性决定用户在导航过程中是否可以与列进行交互。将 setSuppressNavigable() 设置为 true 限制用户与列的互动,提供只读体验。

table.addColumn("ReadOnly Column", Product::getDescription).setSuppressNavigable(true);

标签

列的标签是其公开标识,有助于清晰理解所显示的数据。使用 setLabel 设置或修改与列关联的标签。

提示

默认情况下,标签将与列 ID 相同

table.addColumn("Product ID", Product::getProductId).setLabel("ID");

最小宽度

setMinWidth() 方法允许您定义列的最小宽度,以确保一致且美观的布局。

如果未提供最小宽度,表将根据列内容计算最小宽度。

table.addColumn("Price", Product::getPrice).setMinWidth(100.0);
信息

传递的值表示所需的最小宽度(以像素为单位)。