基于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);

(0)

相关推荐

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

    JTable默认的各列宽度平均,下函数可以实现各列宽度与内容长度适应! 复制代码 代码如下: public void FitTableColumns(JTable myTable){  JTableHeader header = myTable.getTableHeader();     int rowCount = myTable.getRowCount(); Enumeration columns = myTable.getColumnModel().getColumns();     wh

  • Sql Server数据把列根据指定内容拆分数据的方法实例

    今天由于工作需要,需要把数据把列根据指定的内容拆分数据 其中一条数据实例 select id , XXXX FROM BIZ_PAPER where  id ='4af210ec675927fa016772bf7dd025b0' 拆分方法: select t3.id ,t3.XXXX as XXXX from ( select A.id , B.XXXX from ( SELECT id, XXXX = CONVERT(xml,'<root><v>' + REPLACE(XXXX

  • Python如何实现Excel的最合适列宽(openpyxl)

    目录 Excel的最合适列宽(openpyxl) 这是最简单的实现 Python写Excel列宽,行高的一些方法 使用第三方库 xlsxwriter,结果文件格式为xlsx 使用第三方库 xlwt,结果文件格式为xls Excel的最合适列宽(openpyxl) Python的Pandas模块是处理Excel的利器,尤其是加工保存Excel非常方便,但是唯独想让导出的Excel自动调整列宽或者行高,确实做不到啊,尤其是加工后还需要使用者自己调整列宽,非常不便. 所以必须openpyxl模块助力.

  • Asp.net简单代码设置GridView自适应列宽不变形实现思路与代码

    动态绑定的GridView由于列数不固定,而列又太多(博主做的这个项目有150个左右的字段),这样设置GridView固定宽度就不能满足需求了.为此整理了两种方法来达到GridView自适应列宽不变形的效果. .aspx.cs 复制代码 代码如下: //在GridView的行数据绑定完的事件中设置 protected void gvObjectList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType

  • C#控制Excel Sheet使其自适应页宽与列宽的方法

    本文实例讲述了C#控制Excel Sheet使其自适应页宽与列宽的方法.分享给大家供大家参考,具体如下: ///// <summary> /// 1.Clear CircleReference /// 2.Set Page to Fit Wide /// 3.Set Column Text fit /// </summary> /// <param name="app"></param> /// <param name="

  • 详解C#设置Excel数据自适应行高、列宽的2种情况

    Excel表格中,由于各种数据的复杂性,可能存在单元格中的数据字号大小.数据内容长度不一而出现,列宽过宽.过窄或者行高过大.过小的问题.常见的解决方法是调整行高.列宽.在Microsoft Excel中,在单元格格式设置中可手动设置自适应行高或自适应列宽,但通过代码,我们可以通过方法AutoFitColumns()或者AutoFitRows()来设置指定数据范围或整个工作表的自适应行高.列宽.这里设置自适应分以下2种情况来进行: 1. 固定数据,设置行高.列宽自适应数据 2. 固定行高.列宽,设

  • antd 表格列宽自适应方法以及错误处理操作

    当不给某列设置宽度时这一列的宽度等于: (表格宽度-有宽度列的宽度)/没有固定宽度的列的数量 也就是没有设置宽度的列会平分表格中余下的宽度 在antd 的表格中, 当你不设置表格滚动, 并且你给每一列设置了固定宽度, 那么他们会按照设置宽度的比例瓜分表格的宽度 表格横向滚动, 序号, 权属人左定位 antd 中的表格列固定是隐藏原列, 然后又在上面覆盖新列实现的, 也就是说白色部分实际是原列, 只不过是被隐藏了 这个表格中只有序号有固定宽度, 那么余下所有列平分表格剩余宽度, 被定为的权属人的新

  • 解决elementui表格操作列自适应列宽

    业务需要前端根据用户权限动态显示对应按钮,直接把操作列的列宽写死的话,在按钮少的情况下不是那么好看,所以想到了一个骚操作... 写死宽度时是这样的: 开始 给操作列绑定宽度属性 :width="actionColWidth < 80 ? 80 : actionColWidth" 把操作列的所有按钮用一个div套起来 class="action-col" <div class="action-col"> <el-button

  • vue完美实现el-table列宽自适应

    背景 Element UI 是 PC 端比较流行的 Vue.js UI 框架,它的组件库基本能满足大部分常见的业务需求.但有时候会有一些定制性比较高的需求,组件本身可能没办法满足.最近在项目里就碰到了. 很多页面都需要用到表格组件el-table.如果没有给el-table-column指定宽度,默认情况下会平均分配给剩余的列.在列数比较多的情况,如果el-table宽度限定在容器内,单元格里的内容就会换行.强制不换行,内容要么在单元格内滚动,要么就会溢出或被截断. 产品想要的效果是:内容保持单

  • Vue使用el-table实现自适应列宽

    本文实例为大家分享了Vue使用el-table实现自适应列宽的具体代码,供大家参考,具体内容如下 主要思路:每次获取分页表格数据时动态计算每列列宽 我的需求是能实现自适应,且不出现横向滚动条,所以计算出来每列列宽后,把所有列宽加起来,得到total,然后用每列列宽除以total,就能得到每列列宽的长度百分比,比如用width=10%的方式去设置每列宽度,如果想展示完全每列内容,不介意出现横向滚动条,就直接用计算出来的列宽作为列的宽度就可以了,比如width=100 以下是计算列宽的主要方法 后台

随机推荐