gpt4 book ai didi

java - NatTable-设置动态列宽

转载 作者:行者123 更新时间:2023-12-01 09:19:08 28 4
gpt4 key购买 nike

我想让 NatTable 的列动态扩展为

  • 显示单元格中的整个值
  • 完全填充父组合

看来我可以做其中之一,但不能两者都做。换句话说,如果我有一个很大的父 Composite,而 NatTable 只有几列且值非常短,那么我将有很多空白空间(又名 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));}
});

我想我正在寻找一种混合方案,其中列将根据值自动调​​整大小。如果表格没有填充复合 Material 的宽度,我想要:

  • 所有列均匀地添加额外宽度,直到表格与复合父表格的大小相同或
  • 特定列将添加额外宽度,直到表格与复合父级的大小相同

如果表格填充了复合 Material 的整个宽度并且列值很长,我想确保表格有一个水平滚动条(必要时)以查看所有列及其未截断的值

有人知道如何实现这一目标吗?谢谢!

最佳答案

当前不支持指定最小宽度。但如果它只是一个视觉效果,您可以尝试使用在整个可用空间上打印的 NatGridLayerPainter。这就像一个附加列,但实际上没有添加列。

NatTable natTable = new NatTable(parent);
NatGridLayerPainter layerPainter = new NatGridLayerPainter(natTable);
natTable.setLayerPainter(layerPainter);

关于java - NatTable-设置动态列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40285894/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com