我有一个Jtable,其中我使用setDataVector函数设置数据。它工作正常,但假设如果我只是通过使用鼠标拖动并在新的数据加载后在同一个表中更改了一些列宽度那么该列的宽度重置为默认位置。因此,即使新数据加载,基本上我仍想保留该宽度。Jtable保留列宽
1
A
回答
6
当您使用setDataVector()方法时,表的结构可能会更改,因此表会自动重新创建TableColumnModel,并且您失去了自定义。
当您创建JTable中第一次使用这样的代码:
JTable table = new JTable(...);
table.setAutoCreateColumnsFromModel(false);
防止TableColumnModel中被重建。
1
发生这种情况的原因是,当您根据文档使用setDataVector()
重新创建列并且列宽度更改为默认值时。
尝试使用setAutoCreateColumnsFromModel()
来防止该行为。
0
当您使用自定义表模型。不要使用setDateVector()它重新创建列。您可以使用setPreferredWidth()方法作为手动管理列的宽度:
table.setModel(buildTableModel(rs));
TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(0).setPreferredWidth(80);
tcm.getColumn(1).setPreferredWidth(200);
tcm.getColumn(2).setPreferredWidth(100);
tcm.getColumn(3).setPreferredWidth(100);
tcm.getColumn(4).setPreferredWidth(100);
相关问题
- 1. JTable列宽
- 2. 跨TableModel保留JTable选择
- 3. 更改JTable列的宽度
- 4. Java,Swing - Jtable行保留删除
- 5. UIGraphicsGetImageFromCurrentContext并保留长宽比
- 6. 保留端口的宽度
- 7. 如何保存JTable列的宽度,顺序和可见性
- 8. 自动调整JTable列宽度
- 9. 在JTable中自动计算列宽
- 10. 动态调整JTable中ImageIcon的列宽
- 11. Java JTable不能设置列的宽度
- 12. 按百分比设置JTable的列宽
- 13. 如何在JTable/JXTable中设置列宽?
- 14. 的JTable是在调整我的列宽
- 15. 调整大小JTable列宽包含JCheckBoxes
- 16. JTable宽度布局
- 17. MySQL保留列名
- 18. 如何更改宽度并保留rtl?
- 19. 响应式iframe保留长宽比
- 20. 用最小宽度保留边距
- 21. 在保留宽度的情况下切换字体系列
- 22. jQuery的 - 数据表不保留列宽排序
- 23. Excel VBA中移动列,并保留宽度
- 24. 当我调整JFrame的大小时,如何保留JTable的列的大小?
- 25. 宽度JTable单元适合宽度值
- 26. IE8不保留宽高比时仅宽度或高度改变
- 27. 缩放保留宽高比的HTML5画布宽度
- 28. 保留内格宽度时,外层div宽度动画为0px
- 29. 使用JTable作为JScrollPane的columnHeader,同时保持每列的宽度
- 30. JTable中TableColumn的宽度
我使用一个自定义的TableModel – avinash