1 回答

TA贡献1848条经验 获得超10个赞
坏消息:一般来说,在放置之前无法获得表格的实际宽度。这很大程度上取决于布局区域。
好消息:可以模拟桌子的布局并检查占用的地方:
Rectangle area = new Rectangle(0, 0, 500, 500);
LayoutResult result = table.createRendererSubTree().setParent(doc.getRenderer()).layout(new LayoutContext(new LayoutArea(0, area)));
Rectangle tableArea = result.getOccupiedArea().getBBox();
在上面的代码中,我为表创建了一个渲染器createRendererSubTree()(setParent(doc.getRenderer())layout(new LayoutContext(new LayoutArea(0, area)))
UPD:我已经阅读了您最初的问题,并为您提供了另一种解决方案。假设您没有任何区域可放置,但想看看桌子可以占用多少空间。
然后使用下一个片段:
MinMaxWidth minMaxWidth = ((TableRenderer)table.createRendererSubTree().setParent(doc.getRenderer())).getMinMaxWidth();
float minWidth = minMaxWidth.getMinWidth();
float maxWidth = minMaxWidth.getMaxWidth();
在上面的代码中,我计算了表格的最小和最大宽度。
添加回答
举报