Java JTable列标题

Java JTable列标题,java,database,swing,jtable,jtableheader,Java,Database,Swing,Jtable,Jtableheader,我试图显示更详细的列标题,而不使用提供的数据库列名。这是我的密码: ResultSet rs = null; PreparedStatement pst = null; String sql = "SELECT * From product"; String col[] = {"Product No", "Name", "Price", "QOH"}; DefaultTableModel dtm = new DefaultTableModel(); try { pst = conn.pr

我试图显示更详细的列标题,而不使用提供的数据库列名。这是我的密码:

ResultSet rs = null;
PreparedStatement pst = null;
String sql = "SELECT * From product";
String col[] = {"Product No", "Name", "Price", "QOH"};
DefaultTableModel dtm = new DefaultTableModel();
try {
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
    dtm.setColumnIdentifiers(col);
    ProductList_tbl.setModel(dtm);
    ProductList_tbl.setModel(DbUtils.resultSetToTableModel(rs));
}

但是它仍然显示数据库表列名。

猜测您使用的是哪个
DbUtils
,会想到以下几点:

  • 为每个所需列使用SQL别名,而不是通配符,例如

    SELECT column_name AS alias_name;
    
  • 使用可用的任何API在由
    DbUtils.resultSetToTableModel()创建后更新
    TableModel


猜测您使用的是哪个
DbUtils
,会想到以下几点:

  • 为每个所需列使用SQL别名,而不是通配符,例如

    SELECT column_name AS alias_name;
    
  • 使用可用的任何API在由
    DbUtils.resultSetToTableModel()创建后更新
    TableModel


如果DbUtils没有提供更改列值的API,那么您应该能够使用标准表类:

TableColumnModel tcm = table.getColumnModel();
TableColumn tc = tcm.getColumn(...);
tc.setHeaderValue( "..." );

如果DbUtils不提供更改列值的API,那么您应该能够使用标准表类:

TableColumnModel tcm = table.getColumnModel();
TableColumn tc = tcm.getColumn(...);
tc.setHeaderValue( "..." );

@垃圾神:我只是想知道他们的成员有多伟大:)。但我有一个类似的问题,如果我在执行
(DbUtils.resultsetottablemodel(rs))之后更新表模型它给我一个空的结果集。请您对此发表意见好吗?调用
rs.beforeFirst()
应该将光标移动到第一行之前的初始位置。@trashgood:我只是想知道这样做有多好,他们的成员是:)。但我有一个类似的问题,如果我在执行
(DbUtils.resultsetottablemodel(rs))之后更新表模型它给我一个空的结果集。请您对此发表意见好吗?调用
rs.beforeFirst()
应该将光标移动到第一行之前的初始位置。