登录站点

用户名

密码

兴趣联盟 - JavaSwing

  • 分享

    JTable实现列自动适用内容宽度

    1lyz 2010-07-23 15:03

        /*

         * 使表格自动适应内容调整列大小

         */

        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 + 4);//4,值目的是使表格看起来不是那么拥挤,起到间隔作用

                }

        }

     

你还不是该群组正式成员,不能参与讨论。 现在就加入