Java 单元格渲染器设置列宽

Java 单元格渲染器设置列宽,java,swing,Java,Swing,是否可以在单元格渲染器中设置JTable列的宽度?我已经尝试了以下代码,但它似乎什么也做不了 //in main class where table defined; table.getColumnModel().getColumn(0).setCellRenderer(renderer); //in renderer class; setSize(10, getPreferredSize().height); 1) 可以用这种(非常简单的)方法设置JTable列的宽度 2) 我建议不

是否可以在单元格渲染器中设置JTable列的宽度?我已经尝试了以下代码,但它似乎什么也做不了

//in main class where table defined;

table.getColumnModel().getColumn(0).setCellRenderer(renderer);

//in renderer class;

setSize(10, getPreferredSize().height); 
1) 可以用这种(非常简单的)方法设置
JTable列的
宽度

2) 我建议不要在
TableRenderer
中这样做

  • 因为我不认为每次启动渲染器时都需要重新绘制

  • 从你在这里发布的代码来看,我不太清楚是什么/如何/在哪里/为什么

1)可以通过这种(非常简单的)方式设置
JTable列的宽度

2) 我建议不要在
TableRenderer
中这样做

  • 因为我不认为每次启动渲染器时都需要重新绘制

  • 从你在这里发布的代码来看,我不太清楚是什么/如何/在哪里/为什么


否,不要:永远不要更改调用目标的状态(在GetXXCellRenderComponent中)将所有参数视为严格只读否,不要:永远不要更改调用目标的状态(在GetXXCellRenderComponent中)将所有参数视为严格只读实际上我当前正在使用此方法设置widht,我总共有20多个表使用了这个通用的渲染器。这个渲染器设置了相关表的行号。我想知道是否可以在所有这些表的公共位置设置其宽度。或者使用任何其他方法集中设置此列宽。要避免这种情况,由于渲染器工作并根据大量事件重新绘制TableCell,因此有两种方法:1)通过从TableCell计算最大长度来确定TableColumn宽度,并分别为每个TableColumn确定最大长度;2)手动编写代码,在其中为每个TableColumns设置PreferredSize;3)仅在开始时调用此代码,然后通过(从某些内置程序中)Refresh谢谢你有说服力和简单的解释。实际上我目前正在用这种方法设置Widt,我总共有20多个表使用了这个通用的渲染器。这个渲染器设置了相关表的行号。我想知道是否可以在所有这些表的公共位置设置其宽度。或者使用任何其他方法集中设置此列宽。要避免这种情况,由于渲染器工作并根据大量事件重新绘制TableCell,因此有两种方法:1)通过从TableCell计算最大长度来确定TableColumn宽度,并分别为每个TableColumn确定最大长度;2)手动编写代码,在其中为每个TableColumns设置PreferredSize;3)仅在开始时调用此代码,然后通过(从某些内置程序中)谢谢你有说服力的简单解释。
TableColumnModel tcm = myTable.getColumnModel();
tcm.getColumn(0).setPreferredWidth(int);