亲宝软件园·资讯

展开

jtable 列宽 基于JTable的列宽与内容自适应的实现方法

人气:0
想了解基于JTable的列宽与内容自适应的实现方法的相关内容吗,在本文为您仔细讲解jtable 列宽的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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);

加载全部内容

相关教程
猜你喜欢
用户评论