您对字符串的长度(也不是对特定字体/度量的映射)并不真正感兴趣。您对renderingComponent的preferredSize感兴趣,renderingComponent渲染单元格内容。为此,请遍历所有行并查询大小,例如
int width = 0; for (row = 0; row < table.getRowCount(); row++) { TableCellRenderer renderer = table.getCellRenderer(row, myColumn); Component comp = table.prepareRenderer(renderer, row, myColumn); width = Math.max (comp.getPreferredSize().width, width); }
或使用JXTable(在SwingX项目中):它有一个方法pack()为您工作:-)
编辑:与在渲染器上手动调用getXXRendererComponent相比,偏爱表的prepareRenderer的原因是,该表可能确实装饰了renderComponent的视觉属性。如果这些装饰影响了组件的prefSize,则关闭手动配置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)