调整jTable列的图标

时间:2012-10-03 08:49:17

标签: java swing resize icons jtable

在我的程序中,可以重新调整jTable的列的大小。构建jTable时,列会根据长度自动调整大小。但有时我想改变列的大小,因为当表格打印在纸上时它更易读。

可以显示如下图标:icon

现在,在重新调整列的大小时,只显示鼠标

是否有人可以这样做以及如何做到这一点?

表格代码:

        private JTable table;
    table = new JTable(model);
    table.setBounds(1, 1, 450, 0);
    JScrollPane scrollPane = new JScrollPane(table);
    panel_10.add(scrollPane);
    JTableHeader tableHeader = table.getTableHeader();
    tableHeader.setResizingAllowed(true);

也许它与我的DefaultTableModel有关?

            DefaultTableModel model = new DefaultTableModel();

        Statement stmt2 = connection.createStatement();
        ResultSet rs2 = stmt2.executeQuery("SELECT * FROM machinecodes WHERE type = '" + type +"'");

        while(rs2.next()){
       for(int i = 1; i < columns ; i++)
       {
            if(rs2.getString(1+i)==null) break;
            model.addColumn(rs2.getString(1+i));
       }
        }
        }
        else
        {
            for(int i = 1 ; i <= 25 ; i++)
                model.addColumn(i);

        }
        // Fetch each row from the result set
             while (rs.next()) {
                Object[] o = new Object[columns];
            // Get the data from the row using the column index
                for(int i = 0; i < columns ; i++)
            o[i]=rs.getString(i+1);

                            model.insertRow(0, o);
             }      

1 个答案:

答案 0 :(得分:2)

检索JTableHeader并允许调整大小:

JTable yourTable;
...
JTableHeader tableHeader = yourTable.getTableHeader();
tableHeader.setResizingAllowed(true);