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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

  2021-03-18 我要评论
想了解基于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);

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们