【发布时间】:2011-04-25 05:48:41
【问题描述】:
我在设置 JTable 的列宽时遇到了这个问题。
下面的代码可以正常工作:
TableColumn a =shipsAndOwnHitsTable.getColumnModel().getColumn(0);
a.setPreferredWidth(800);
它改变了第一列的宽度。
但是,当放置在 while 或 for 循环中时,什么也没有发生:
int index = 0;
while (index < columnNum){
TableColumn a =shipsAndOwnHitsTable.getColumnModel().getColumn(index);
a.setPreferredWidth(800);
index+=1;
}
此代码不起作用,列大小没有任何变化,有人可以解释原因吗? 如果不能,有人可以告诉我如何将行宽和列宽设置为相同,即我希望表格中的所有单元格都是方形的,无论表格大小(行和列)如何。?
谢谢
【问题讨论】:
-
你确定 columnNum>0 吗?
-
很抱歉,我不得不问一个显而易见的问题:你在你的桌子上打电话给
setAutoResizeMode(JTable.AUTO_RESIZE_OFF);吗?周围的布局是否允许任意表格大小? (尝试将其放入JScrollPane) -
@Howard:没关系,我已经完成了 setAutoResizeMode(JTable.AUTO_RESIZE_OFF);我会试试 JScrollPane。
-
您必须发布SSCCE。如果这一切都实现了,它应该可以完美地工作。