【问题标题】:Java - ResultSet change Db column names to show in JTableJava - ResultSet 更改 Db 列名称以显示在 JTable 中
【发布时间】:2014-06-14 09:31:23
【问题描述】:
我正在使用 rs2xml.jar 将数据填充到表中。这是我显示表格列和数据的代码
ResultSet rs = stmt.executeQuery("select * from employees");
table_employees.setModel(DBUtiles.resultSetToTableModel(rs));
此代码成功运行但我想重命名列。我不想在我的表中显示数据库列。
【问题讨论】:
标签:
java
swing
jtable
jtableheader
【解决方案1】:
您需要从TableColumnModel 更新TableColumn:
TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(0).setHeaderValue("whatever you want");
或者您可以在创建 JTable 时覆盖 getColumnName(...) 方法:
JTable table = new JTable( DBUtilities.resultSetToTableModel(rs)
{
private String[] columnNames =
{
"Column 1",
"Column 2",
"Column ..."
};
@Override
public String getColumnName(int col)
{
return columnNames[col];
}
};
【解决方案2】:
如果您希望将 DB 值与 java 列名一起使用,您可以考虑使用下面的代码,并且您可以使用 jTable 的 TableModel 属性在 java 中设置列名。
DefaultTableModel tmodel = (DefaultTableModel) jTable1.getModel();
tmodel.addRow(new Object[] {....});
jTable1.setModel(tmodel);
希望这会有所帮助。
【解决方案3】:
您可以根据您的选择从 Sql 查询中获取列名,例如
SELECT column name as 'Student Id', Column Name as 'Student name' FROM student;
查询根据您的决定为您提供列名的结果。