gpt4 book ai didi

java - 用 MySQL 数据修改 JTable 的列标题

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:19 25 4
gpt4 key购买 nike

我有一个从 MySQL 数据库表中检索信息的 JTable。列标题的命名方式与它们在数据库中的命名方式相同。

这是创建 JTable 的代码:

JScrollPane spBlockViewSchedule = new JScrollPane();
spBlockViewSchedule.setBounds(10, 285, 763, 185);
pnlBlockSched.add(spBlockViewSchedule);

tblBlockViewSchedule = new JTable();
spBlockViewSchedule.setViewportView(tblBlockViewSchedule);

这是填充 JTable 的代码:

private void populateTable(String sql, JTable table) {
try {
pst = DbConnection.conn.prepareStatement(sql);
rs = pst.executeQuery();

} catch(Exception ex) {
ex.printStackTrace();
}

table.setModel(DbUtils.resultSetToTableModel(rs));
}

如何在不更改数据库表本身的列名的情况下更改 JTable 中显示的列名?

最佳答案

使用如下代码创建一个空的 DefaultTableModel:

String[] columnNames = {"Course Code", "Subject Code", "Year Level", ...};
DefaultTableModel model = new DefaultTableModel(columnNames, 0);

然后在从 ResultSet 读取数据的代码中,使用 addRow(....) 方法将数据添加到 TableMODel。像这样的东西:

while (rs.next())
{
Vector row = new Vector();

for (int i = 1; i <= columns; i++)
{
row.addElement( rs.getObject(i) );
}

model.addRow( row );
}

最后使用以下方法创建表:

JTable table = new JTable( model );

编辑:

由于您使用的是第 3 方代码,因此您需要更改向模型添加数据的方式。我在上面给了你基本代码。您可以从 Table From Database 查看 Table From Database Example 源代码一个完整的例子。

或者,您可以在创建表格后修改列标题,代码如下:

table.getColumn("course_code").setHeaderValue("Course Code");
...
table.repaint();

编辑 2:

您可以从 TableColumnModel 中获取 TableColumn:

TableColumnModel tcm = table.getTableColumnModel();
tcm.getColumn(0).setHeaderValue("Course Code");
...
table.repaint();

关于java - 用 MySQL 数据修改 JTable 的列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com