我需要我的JTable自动调整其列宽以适应内容。我发现TableColumnAdjuster
类非常有用。但是有一个小问题。假设我有5列,他们的内容很短。在这种情况下,如果我使用自动调整器,它会根据它们的内容设置前四列宽度,并将剩余空间放到最后一列。请看例子。自动调整JTable列宽度
这里的最后一列,Balance
给出所有的多余空间。但是如果我需要把这个空间放到中间一列的话。在上述情况下,我需要将该空间分配给第三列name
。我尝试修改TableColumnAdjuster
类的adjustColumns()
方法。但我无法得到它的工作。
我尝试使用column.setPreferredWidth()
和column.setWidth()
来更改列大小。但似乎并没有改变任何东西。如何有效更改JTable
的列大小。如果还有一些其他的选择或直接回答我的主要问题,那就更好了。谢谢!
这太棒了,最终使用它。我在setPreferredColumnModel调用之前添加了一个检查,看起来像“if(width> 300)width = 300;”它修复了一些我正在显示非常长的数据字段的情况。我建议在答案中加入 - 你也许还会提取出最小/最大宽度(会做出很好的可选参数 - 事实上我现在要在我的代码库中这样做)。(我希望我知道当编辑这样的东西到别人的回答中很酷时......由于它不是CW,所以我不希望在未经许可的情况下更改内容。) –
嗨,@BillK随意编辑/添加代码...并且如果有的话,截图。 ;) –
我也可以以某种方式评估标题,以便其文本不会被截断? – Xerus