动态更改 JTable 中的列标题文本
我有一个包含 3 列的表格,标题中包含以下值:“No.”、“X [mm]”、“Y [mm]”。该表包含点的坐标(以毫米为单位)。我有一个复选框,用于检查应重新填充表格以显示以英寸为单位的坐标。此外,列标题值应为:“No.”、“X [in]”、“Y [in]”。
简而言之,我想动态更改表格的标题文本。
详细: 该表是 JTable 的子类。此外,“DefaultTableModel”的子类已被设置为表的模型。我已在数据模型子类的构造函数中提供了标头值。
有什么想法吗?我的应用程序仅与 jdk v1.4 兼容,因此如果解决方案与该版本兼容那就太好了:)
I have a table with 3 columns which have the following values in the headers: 'No.', 'X [mm]', 'Y [mm]'. This table contain the coordinates of points in millimeters. I have a checkbox on checking of which the table should repopulate to show the coordinates in inches. Moreover, the column header values should be: 'No.', 'X [in]', 'Y [in]'.
In short I want to dynamically change the header text of the table.
In detail:
The table is a subclass of JTable. Moreover, a subclass of 'DefaultTableModel' has been set as the model for the table. I have provided the header values in the constructer of the datamodel subclass.
Any idea? My application is compatible with only jdk v1.4 so it would be good if the solution is compatible with the verion :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以直接更新 TableColumnModel:
You can update the TableColumnModel directly:
如果您有列号,请使用该代码
If you have column number use that code
我无法在这里进行测试,但熟悉此方法 '
[DefaultTableModel.setColumnIdentifiers(...)][1]
' 应该可以满足您的要求。基本上,您运行“
DefaultTableModel.getColumnCount()
”来找出有多少列(除非您已经知道)。然后运行“DefaultTableModel.getColumnName(int ColumnIndex)
”来获取每个名称,按照您想要的方式更改它并将其放入数组中。之后,您可以使用“DefaultTableModel.setColumnIdentifiers(...)
”将它们设置回来。希望这有帮助。
I can't test here but familiar that this method '
[DefaultTableModel.setColumnIdentifiers(...)][1]
' should do what you want.Basically, you run '
DefaultTableModel.getColumnCount()
' to find out how many column (unless you already know). Then you run 'DefaultTableModel.getColumnName(int ColumnIndex)
' to get the name of each, change it the way you want and put it in an array. After thatn, you set them back using 'DefaultTableModel.setColumnIdentifiers(...)
'.Hope this helps.