NatTable-设置动态列宽
NatTable-Setting a Dynamic Column Width
我想让 NatTable 的列动态扩展到
- 在单元格中显示整个值
- 完全填充父复合材料
看来我可以做一个或另一个,但不能同时做。换句话说,如果我有一个很大的父 Composite 而 NatTable 只有几列的值很短,我会有很多空白 space (也就是 NatTable 与父 Composite 相比宽度较小复合宽度)
我尝试了以下代码片段:
// This sets the full width of the Composite, but all columns are equal
// width. If a column has a long value, the value will be truncated.
glazedListsGridLayer.getBodyDataLayer().setColumnPercentageSizing(true);
// This auto-resizes the columns based on their values. If the values
// are short, this table will not fill the width of the composite
nattable.addConfiguration(new DefaultNatTableStyleConfiguration() { {
cellPainter = new LineBorderDecorator(new TextPainter(false, true, 5, true));}
});
我想我正在寻找一种混合方式,其中列将根据值自动调整大小。如果 table 没有填充复合材料的宽度,我想要:
- 所有列均匀地增加额外的宽度,直到 table 与 Composite 父级或
的大小相同
- 特定列将添加额外的宽度,直到 table 与 Composite 父级的大小相同
如果 table 填满了 Composite 的整个宽度并且列值很长,我想确保 table 有一个水平滚动条(必要时)以查看所有列及其非截断值
有没有人知道如何实现这一点?
谢谢!
目前不支持指定最小宽度。但是如果它只是一个视觉的东西,你可以尝试使用 NatGridLayerPainter
打印在整个可用的 space 上。这就像一个额外的列,但实际上没有添加列。
NatTable natTable = new NatTable(parent);
NatGridLayerPainter layerPainter = new NatGridLayerPainter(natTable);
natTable.setLayerPainter(layerPainter);
我想让 NatTable 的列动态扩展到
- 在单元格中显示整个值
- 完全填充父复合材料
看来我可以做一个或另一个,但不能同时做。换句话说,如果我有一个很大的父 Composite 而 NatTable 只有几列的值很短,我会有很多空白 space (也就是 NatTable 与父 Composite 相比宽度较小复合宽度)
我尝试了以下代码片段:
// This sets the full width of the Composite, but all columns are equal
// width. If a column has a long value, the value will be truncated.
glazedListsGridLayer.getBodyDataLayer().setColumnPercentageSizing(true);
// This auto-resizes the columns based on their values. If the values
// are short, this table will not fill the width of the composite
nattable.addConfiguration(new DefaultNatTableStyleConfiguration() { {
cellPainter = new LineBorderDecorator(new TextPainter(false, true, 5, true));}
});
我想我正在寻找一种混合方式,其中列将根据值自动调整大小。如果 table 没有填充复合材料的宽度,我想要:
- 所有列均匀地增加额外的宽度,直到 table 与 Composite 父级或 的大小相同
- 特定列将添加额外的宽度,直到 table 与 Composite 父级的大小相同
如果 table 填满了 Composite 的整个宽度并且列值很长,我想确保 table 有一个水平滚动条(必要时)以查看所有列及其非截断值
有没有人知道如何实现这一点? 谢谢!
目前不支持指定最小宽度。但是如果它只是一个视觉的东西,你可以尝试使用 NatGridLayerPainter
打印在整个可用的 space 上。这就像一个额外的列,但实际上没有添加列。
NatTable natTable = new NatTable(parent);
NatGridLayerPainter layerPainter = new NatGridLayerPainter(natTable);
natTable.setLayerPainter(layerPainter);