实现JTable的列宽与内容的自适应


 JTable默认的各列宽度平均,下函数可以实现各列宽度与内容长度适应!来自互联网~

 1 public void FitTableColumns(JTable myTable){  2   JTableHeader header = myTable.getTableHeader();  3      int rowCount = myTable.getRowCount();  4      Enumeration columns = myTable.getColumnModel().getColumns();  5      while(columns.hasMoreElements()){  6          TableColumn column = (TableColumn)columns.nextElement();  7          int col = header.getColumnModel().getColumnIndex(column.getIdentifier());  8          int width = (int)myTable.getTableHeader().getDefaultRenderer()  9  .getTableCellRendererComponent(myTable, column.getIdentifier() 10                          , false, false, -1, col).getPreferredSize().getWidth(); 11          for(int row = 0; row<rowCount; row++){ 12              int preferedWidth = (int)myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable, 13                myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth(); 14              width = Math.max(width, preferedWidth); 15  } 16          header.setResizingColumn(column); // 此行很重要
17          column.setWidth(width+myTable.getIntercellSpacing().width); 18      }

使用方法:FitTableColumns(yourTableName);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM