首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

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

2012-01-08 
在java中用jtable输出的表格怎样改变列宽?????在java中用jtable输出的表格怎样改变列宽?????[解决办法]htt

在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;    } 

热点排行