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

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

时间: 2024-09-02 02:11:10

基于JTable的列宽与内容自适应的实现方法_java的相关文章

ListView列宽自适应,设置ListView.Column[0].Width := -1;

使用TListView列表显示内容,如果列内容过长,就会显示成'XXX-'形式,此时如果双击列标题,列宽将变为自适应.用代码设置如下: 1.设置ListView.Column[0].Width := -1;//列宽根据列内容自适应,此时保证列内容都可见. 2.设置ListView.Column[0].Width := -2;//列宽根据列标题自适应,此时保证列标题可见.

listview列宽如何自动调整大小?

问题描述 wpflistview列宽如何自动调整大小?wpflistview列宽随内容调整大小,高手在哪? 解决方案 解决方案二:貌似没办法,只能设置ListView的HorizontalAlignment="Stretch"为拉伸.解决方案三:谁有办法啊?解决方案四:实在不行自己写事件判断,或者其他什么的方式实现解决方案五:https://social.msdn.microsoft.com/Forums/vstudio/en-US/83bd7ab9-3407-461f-a0bc-69

Excel2010行高列宽如何调整

  1.打开需要调整行高列宽的Excel表格,将鼠标移到两列之间就就会出现调整符号,这个时候只需点击然后拖拽就可以改变单元格的宽度. 2.想要改变单元格的高度也是同样道理,只需将鼠标移到行数之间,出现调整符号的时候点击然后进行拖拽即可. 3.除此之外,我们还可以对行高列宽进行准确的调整,选中需要调整的单元格,接着点击工具栏的"格式"→"行高" 4.我们就可以对行高数据进行修改啦. 5.列宽也是同样的修改方法.

文本框textarea高度随内容自适应增长收缩(js/jquery)

文本框textarea高度随内容自适应增长收缩(js/jquery) textarea高度随内容自适应增长收缩 方法一.   代码如下 复制代码 <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <TITLE>枫芸志 » 文本框textarea高度自适应增长/伸缩</TITLE> <sty

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#教程

本文实例讲述了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="

java-easy-ui 自适应列宽问题

问题描述 easy-ui 自适应列宽问题 现在的问题是开关1也占用一个th 导致我想拉大B项电流会使C项电流的数据拉大 求解 把开关1写在td中就消失 解决方案 不明白什么叫"消失",说的详细点

wpf datagrid-WPF DataGrid 列宽 自适应问题

问题描述 WPF DataGrid 列宽 自适应问题 DataGrid中绑定ComBox.编辑的时候下拉选择,如果先选择了一个字数比较多的选项,那么该列被拉长,再改一下,选择一个字数比较少的选项,那么这一列还是那么长. 解决方案 请描述具体些,看不懂问题 解决方案二: <DataGridComboBoxColumn x:Name="colCustomer" Header="客户" CanUserSort="False" SelectedVa

table-html固定表中单元格的宽度,单元格中内容过长时,单元格的列宽不变

问题描述 html固定表中单元格的宽度,单元格中内容过长时,单元格的列宽不变 如何固定表中单元格的宽度,单元格中内容过长时,单元格的列宽不变,行宽增加一行,显示过长的内容,我在表的列头使用的是style={width:"20%"},列头的宽度占表的百分比,当单元格内容过长时,行宽增大,显示过长的内容. 请各位高手提供好的方法,有详细的例子更好,谢谢. 解决方案 table-layout:fixed; overflow:hidden;