首页 > 解决方案 > 获取 JTable 列的实际宽度

问题描述

我编写了一个实用程序来显示文件夹树中文件夹占用的磁盘空间。它使用带有文件夹名称、占用空间、占用空间百分比、文件数等列的 JTable。

我想实现将列调整为当用户双击列与其下一列之间的边界时显示的最宽字符串所需的最小宽度的标准功能。我查找了如何执行此操作的示例,它们适用于包含和显示字符串的列。

我的“文件夹名称”列在文件夹名称前面添加了一个图标;图标中的图形指示文件夹是折叠、展开还是没有子文件夹,并设置为一个宽度以表示它在文件夹层次结构中的深度(子文件夹从其父文件夹缩进等)

我的“大小”列使用以字节为单位的值,并将其转换为 1-3 位数字的值,后跟一个空格或字母,指示它是以字节、千字节、兆字节还是千兆字节为单位的。

因此,当执行确定列宽的代码时,它会获取字符串的宽度,但是在这两种情况下,字符串的宽度并不是设置列的正确宽度;对于其中一个,实际上对于 JTable 单元格来说,仅仅获取字符串宽度不能给出列的宽度。

那么,即使内容不是字符串,如何获得 JTable 单元格内容的最小显示宽度?

标签: javaswingjtable

解决方案


推荐阅读