【发布时间】:2020-08-13 11:40:18
【问题描述】:
是否有任何机制可以使 JTable 的单元格完全正方形?目前我只是在表的实现中覆盖了这个方法:
@Override
public int getRowHeight() {
return this.getColumnModel().getColumn(0).getWidth();
}
这在大多数情况下都有效,如下图所示,我有一个 15x15 的 JTable:
但是,如果我扩展 JPanel,表格位于宽度方向,单元格的宽度和长度将继续扩展,导致下面的 3 行被切断:
我想知道是否有更好的解决方案让 JTable 的单元格完全正方形?
【问题讨论】:
-
当发生调整大小时,确保使用两种尺寸(宽度和高度)中较小的一个来定义单元格尺寸?
-
所以还要覆盖getRowHeight?只是想确保我理解正确
-
@sorfiend 我试过这样做,结果是这样的: return Math.min(super.rowHeight, this.getColumnModel().getColumn(0).getWidth());
-
我的意思是你要么需要捕获调整大小事件,要么考虑窗口大小大小,然后使用一些逻辑来计算宽度或高度是否更小(限制因素)。然后根据哪个更小,您可以更改单元格的大小。例如,如果高度较小,则需要使用
cellSize = windowHight / cellsCount,或者如果宽度较小,则需要使用cellSize = windowWidth / cellsCount
标签: java swing jtable swingutilities