jtable列表自适应大小

转载:http://blog.chinaunix.net/uid-20771867-id-83272.html

  • 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);   
  •          }   
  •      } 
posted @ 2016-04-07 18:01  坚哥威武  阅读(1285)  评论(0编辑  收藏  举报