基于JTable的列宽与内容自适应的实现方法
作者:
JTable默认的各列宽度平均,下函数可以实现各列宽度与内容长度适应!
public void FitTableColumns(JTable myTable){
JTableHeader header = myTable.getTableHeader();
int rowCount = myTable.getRowCount();
Enumeration columns = myTable.getColumnModel().getColumns();
while(columns.hasMoreElements()){
TableColumn column = (TableColumn)columns.nextElement();
int col = header.getColumnModel().getColumnIndex(column.getIdentifier());
int width = (int)myTable.getTableHeader().getDefaultRenderer()
.getTableCellRendererComponent(myTable, column.getIdentifier()
, false, false, -1, col).getPreferredSize().getWidth();
for(int row = 0; row<rowCount; row++){
int preferedWidth = (int)myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable,
myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth();
width = Math.max(width, preferedWidth);
}
header.setResizingColumn(column); // 此行很重要
column.setWidth(width+myTable.getIntercellSpacing().width);
}
使用方法:FitTableColumns(yourTableName);
您可能感兴趣的文章:
- Java Swing中的表格(JTable)和树(JTree)组件使用实例
- Java Swing实现JTable检测单元格数据变更事件的方法示例
- Java Swing中JTable渲染器与编辑器用法示例
- Jtable和JTree的写法示例代码
- jtable列中自定义button示例代码
- 可视化Swing中JTable控件绑定SQL数据源的两种方法深入解析
- 解决JTable排序问题的方法详解
- Java Swing中的文本框(JTextField)与文本区(JTextArea)使用实例
- Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例
- java swing中实现拖拽功能示例
- Java Swing组件编程之JTable表格用法实例详解