![](/img/trans.png)
[英]dynamically changing the width of the column in jtable with Netbeans IDE
[英]Changing the column width of the jtable
我试图更改一个jtable的列的宽度,但是当我编译代码时,该宽度保持不变。
jTable2.setBackground(Color.WHITE);
jTable2.setForeground(Color.BLACK);
jTable2.setShowHorizontalLines(true);
jTable2.setShowVerticalLines(true);
jTable2.setRowHeight(50);
jTable2.getTableHeader().getBackground().brighter();
jTable2.getTableHeader().setBackground(Color.RED);
jTable2.getTableHeader().setForeground(Color.blue);
column1= new ArrayList<> ();
column1.add("Transaction Id");
column1.add("Transaction Date");
column1.add("Narration");
column1.add("Value Date");
column1.add("Debit Amount");
column1.add("Credit Amount");
column1.add("Ledger Balance");
column1.add("Credit Account No.");
column1.add("Credit Account Name");
column1.add("Transaction Ref No.");
column1.add("Cheque No.");
column1.add("Transaction Type");
column1.add("Staff ID");
column1.add("Transaction Time");
**for (int i = 0; i < jTable2.getModel().getColumnCount(); i++) {
if (i == 2) {
column=jTable2.getColumnModel().getColumn(i);
column.setPreferredWidth(200);
} else {
column.setPreferredWidth(50);
}}**
JDBCConnectionPigs csx = new JDBCConnectionPigs();
Connection csx1 = csx.createConnection();
try {
csx1.setAutoCommit(false);
PreparedStatement ps1 = csx1.prepareStatement("SELECT * FROM bsanca01100000310");
ResultSet rst=ps1.executeQuery();
data5= new ArrayList<>();
int i=0;
while (rst.next())
{
data4= new ArrayList<> ();
data4.add(0, rst.getInt("trn_id")+"");
data4.add(1, rst.getDate("trn_date")+"");
data4.add(2, rst.getString("narration"));
data4.add(3, rst.getDate("value_date")+"");
data4.add(4, rst.getString("debit"));
data4.add(5, rst.getString("credit"));
data4.add(6, rst.getString("ledger_balance"));
data4.add(7, rst.getString("credit_account_no"));
data4.add(8, rst.getString("credit_account_name"));
data4.add(9, rst.getString("tra_ref_number"));
data4.add(10, rst.getString("chq_number"));
data4.add(11, rst.getString("trn_type"));
data4.add(12, rst.getString("staff_id"));
data4.add(13, rst.getTime("trn_time")+"");
data5.add(i, data4);
i++;
}
model= new MyTableModel(data5,column1);
jTable2.setModel(model);
csx1.setAutoCommit(true);
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
}
谁能帮助我确定问题出在哪里,或者是实现此问题的更好方法。 抱歉,沐浴者因为问题接缝微不足道,但给了我很多麻烦。
jTable2.setModel(model);
上面的陈述就是问题所在。 更改表的TableModel
时,将重新创建TableColumnModel
,因此您将丢失所有自定义列宽。
更改模型后,您需要重置列宽。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.