在Java中设置JTable中的列宽

时间:2015-07-24 09:49:58

标签: java swing

我创建了一个JTable,它将MySQL数据库中的一些数据检索到2列。对于第2列宽度是不够的..所以我在下面编码方法(还包括数据库中的数据检索代码)并调用它。但是柱宽不受影响。这里有什么错误?

private void updateTable(){

    try {
        //getting data from the mysql database
        String sql = "SELECT ItemID,ItemName FROM druginfo";
        pst=conn.prepareStatement(sql);
        rs=pst.executeQuery();
        list_table.setModel(DbUtils.resultSetToTableModel(rs));
        // resizing the column width
       list_table.getColumnModel().getColumn(0).setPreferredWidth(20);
       list_table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
    } catch (Exception ex) {
        JOptionPane.showMessageDialog(null, "Error : "+ex);
    }

}

1 个答案:

答案 0 :(得分:4)

list_table.getColumnModel().getColumn(0).setPreferredWidth(20);

首先,您只将PreferredWidth设置为第一列而不是第二列。你还希望preferredWidth为2nd吗?比你需要把它叫到第二列。

无论如何设置列的宽度是使用函数setWidth()

对于第二列,它是:

columnModel.getColumn(1).setWidth(100);