gpt4 book ai didi

java - 设置列标题的最大高度 - NatTable

转载 作者:行者123 更新时间:2023-12-02 03:47:36 25 4
gpt4 key购买 nike

我有使用 VerticalTextPainter 的列标题。

如果我将 setCalculateByTextHeightsetCalculateByTextLength 设置为 true,则会调整列的大小以正确适应单元格内的所有文本。

有时标题中会有很多文本,所以我希望它们有最大高度。

如果我停止使用setCalculateByTextHeightsetCalculateByTextLength,那么单元格的大小根本不会调整,因此它们只会显示...

我怎样才能做到这一点?

更新

@Override
protected void setNewMinLength(ILayerCell cell, int contentHeight) {

final ILayer layer = cell.getLayer();
final int cellLength = cell.getBounds().height;

if (contentHeight < MAXIMUM_HEIGHT && cellLength < contentHeight) {
layer.doCommand(new RowResizeCommand(layer, cell.getRowPosition(), contentHeight));
} else {
layer.doCommand(new RowResizeCommand(layer, cell.getRowPosition(), MAXIMUM_HEIGHT));
}
}

覆盖NatTable中的paintControl

@Override
public void paintControl(final PaintEvent event) {
super.paintControl(event);

/**
* After first time rendering we stop column/row headers calculating their
* height/lengths. This allows the user to resize the column/row headers after
* the NatTable has been rendered.
*/
if (firstRender) {
columnHeaderPainter.setCalculateByTextHeight(false);
columnHeaderPainter.setCalculateByTextLength(false);

rowHeaderPainter.setCalculateByTextHeight(false);
rowHeaderPainter.setCalculateByTextLength(false);
firstRender = false;
}
}

最佳答案

没有内置机制来指定最大高度或宽度。您可以配置根据内容计算高度,也可以设置固定高度。

我认为您可以通过子类化 VerticalTextPainter 并覆盖 setNewMinLength() 来实现此目的,以便仅在 contentHeight 大于 cellLength 并且 cellLength 不大于时执行 RowResizeCommand比你的最大值大。当然,RowResizeCommand 应该只调整到您指定的最大值。

在任何其他位置执行检查可能会导致单元高度调整大小的无休止的处理。

关于java - 设置列标题的最大高度 - NatTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795027/

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