我需要JTable自动调整其列宽的大小以适合内容.我找到了
TableColumnAdjuster
类非常有用.但是有一个小问题.说我有5列,它们的内容很短.在那种情况下,如果我使用自动调节器,它将根据它们的内容设置前四列的宽度,并将所有剩余空间留给最后一列.请参见示例。
这是最后一栏,
Balance
被赋予所有多余的空间.但是,如果我需要给中间列之一留出空间,该怎么办? 在上述情况下,我需要将该空间分配给第三列
name
.我尝试修改
TableColumnAdjuster
班级的维兹威兹
方法.但是我无法正常工作。
我都尝试过
和
adjustColumns()
用于更改列大小.但似乎并没有改变任何东西.我如何有效地更改
column.setPreferredWidth()
的列大小
.如果还有其他选择或直接解决我的主要问题,那就更好了.谢谢!
column.setWidth()
最新回答
- 2021-1-111 #
- 2021-1-112 #
没有选项可以自动调整比 其他。
也许您可以这样做:
tca = new TableColumnAdjuster( table, 0 ); tca.adjustColumns(); TableColumnModel tcm = table.getColumnModel(); TableColumn tc = tcm.getColumn(1); tc.setWidth(tc.getWidth() + 25);
这将允许您在第1列中添加额外的空间。仅在第一次显示表格时才添加此额外的空间。
另一种选择是使用:
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
这将按比例为每列分配额外的空间。
- 2021-1-113 #
setAutoResizeMode() 会告诉您表格如何调整大小,您应该尝试一下所有可用的选项以查看差异,就我而言,我想专门调整两列的大小,并让其决定如何调整其他所有列。
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN); TableColumnModel colModel=jTable1.getColumnModel(); colModel.getColumn(1).setPreferredWidth(25); colModel.getColumn(2).setPreferredWidth(400);
- 2021-1-114 #
您可以执行以下操作:
JPanel jp = new JPanel(); jp.add(table); jp.setLayout(new GridLayout(1,1)); /* little trick ;) and believe me that this step is important to the automatic all columns resize! A import is also needed for using GridLayout*/ table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); // this is obvius part
相关问题
- java:如何在Swing中为JTable提供分页支持?javaswingpaginationjtable2021-01-11 10:54
- java:哪些Swing组件方法是线程安全的?javaswingthreadsafety2021-01-12 01:26
- java:从jar加载图像以进行Swing HTMLjavahtmlimageswing2021-01-11 04:58
- multithreading:如何从另一个线程暂停和恢复Java中的线程javamultithreadingswing2021-01-11 03:27
您可以尝试下一个:
这需要在resize方法之前执行。
如果您有: