Eclipse rcp Eclipse RCP应用程序中自动调整NatTable的大小

Eclipse rcp Eclipse RCP应用程序中自动调整NatTable的大小,eclipse-rcp,nattable,Eclipse Rcp,Nattable,我正在尝试自动调整NatTable的大小。我有几件事: 1) 我的表只包含一列。 2) 我偶尔躲在桌子旁。 3) 鼠标拖动时,NatTable周围的零件控件将自动调整大小。NatTable也应该适合这个尺寸。 4) 我有可自然细胞的定制细胞油漆工 我尝试使用我的bodyDataLayer(基于GlazedListDataProvider): 但nattable根本没有出现。如果我双击不可见的行,我会得到所需的行。但natTable本身并没有出现。 NatTable仅在以下情况下显示 bodyDa

我正在尝试自动调整NatTable的大小。我有几件事:

1) 我的表只包含一列。 2) 我偶尔躲在桌子旁。 3) 鼠标拖动时,NatTable周围的零件控件将自动调整大小。NatTable也应该适合这个尺寸。 4) 我有可自然细胞的定制细胞油漆工

我尝试使用我的bodyDataLayer(基于GlazedListDataProvider):

但nattable根本没有出现。如果我双击不可见的行,我会得到所需的行。但natTable本身并没有出现。 NatTable仅在以下情况下显示 bodyDataLayer.setDefaultColumnWidth(某些值); 只有默认列宽有效

我尝试向NatTable添加一个Paint Listener,以按照官方文档中的建议初始化自动调整大小命令。但它毫无效果

我试图补充

   natTable.setLayerPainter(
            new NatGridLayerPainter(natTable, SOME_VALUE));
通过位置自动调整列的大小。但它也不会呈现任何内容。我想知道如何调整NatTable的大小?

通常
数据层#setColumnPercentageSizing(true)
应该足以调整百分比大小

我只能假设隐藏NatTable偶尔会产生负面影响,因为这可能会导致对百分比值的错误计算。0的100%仍然是0

您正在调用
NatTable#setVisible(false)
隐藏NatTable吗?在这种情况下,请尝试执行以下代码行

natTable.doCommand(new ClientAreaResizeCommand(natTable));
natTable.redraw();

如果这解决了您的问题,请打开票据并报告该问题。在这种情况下,我们似乎需要为
SWT.Show
或override
setVisible()
添加一个侦听器,以便在可见性更改时执行这些代码行。

hm,我刚刚通过添加一个可见处理对示例应用程序进行了测试,但它在那里工作,没有任何修改。看看NatTable示例应用程序->教程示例->层->数据->百分比大小化数据层示例。也许它给了你一些提示。或者用一个例子创建一个票证,这样我可以更详细地验证这个问题。谢谢德克,做Resize命令对我很有用。我在布局时排除了NatTable的父组合。
natTable.doCommand(new ClientAreaResizeCommand(natTable));
natTable.redraw();