我创建了一个JTable,它从MySQL数据库检索到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);
    }

}

最佳答案

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

首先,仅将PreferredWidth设置为第一列,而不是第二列。您是否还需要2的preferredWidth?比您需要将其称为第二列。

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

对于第二列,它是:
columnModel.getColumn(1).setWidth(100);

09-09 18:08