在Java中设置JTable中的列宽

在Java中设置JTable中的列宽,java,swing,Java,Swing,我创建了一个JTable,它从MySQL数据库中检索一些数据到两列。。对于第二列,宽度不够。。所以我编写了下面的方法(也包括数据库中的数据检索代码)并调用它。但列宽不受影响。这里的错误是什么 private void updateTable(){ try { //getting data from the mysql database String sql = "SELECT ItemID,ItemName FROM druginfo";

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

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

}
首先,您只将PreferredWidth设置为第一列,而不是第二列。您还想要第二个的首选宽度吗?然后你需要把它放到第二栏

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

第二列为:

columnModel.getColumn(1).setWidth(100);
尝试使用
TableColumn#setWidth
columnModel.getColumn(1).setWidth(100);