专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Eclipse

在java中用jtable输出的表格怎样改变列宽?解决办法

发布时间:2010-06-05 15:33:49 文章来源:www.iduyao.cn 采编人员:星星草
在java中用jtable输出的表格怎样改变列宽?????
在java中用jtable输出的表格怎样改变列宽?????

------解决方案--------------------
http://www.exampledepot.com/egs/javax.swing.table/ColSize.html

------解决方案--------------------
Java code

public static int fitTableColumnsWidth(JTable table) {
        return fitTableColumnsWidth(table, 0);
    }

    /**
     * 自动调整表列宽度
     *
     * @param table          被调整表
     * @param addtionalSpace 额外的宽度
     * @return 总列宽
     */
    public static int fitTableColumnsWidth(JTable table, int addtionalSpace) {
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        JTableHeader header = table.getTableHeader();
        int rowCount = table.getRowCount();

        Enumeration columns = table.getColumnModel().getColumns();
        int totalColumnWidth = 0;
        while (columns.hasMoreElements()) {
            TableColumn column = (TableColumn) columns.nextElement();
            int col = header.getColumnModel().getColumnIndex(column.getIdentifier());
            int width = (int) table.getTableHeader().getDefaultRenderer()
                    .getTableCellRendererComponent(table, column.getIdentifier()
                            , false, false, -1, col).getPreferredSize().getWidth();
            for (int row = 0; row < rowCount; row++) {
                int preferedWidth = (int) table.getCellRenderer(row, col).getTableCellRendererComponent(table,
                        table.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth();
                width = Math.max(width, preferedWidth);
            }
            header.setResizingColumn(column); // this line is very important
            column.setWidth(width + table.getIntercellSpacing().width + addtionalSpace);
            totalColumnWidth += width + table.getIntercellSpacing().width + addtionalSpace;
        }
        return totalColumnWidth;
    }
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: