1

が提供するデータベースの列名を使用せずに、より詳細な列ヘッダーを表示しようとしていますDbUtils.resultSetToTableModel()。これが私のコードです:

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

ただし、データベース テーブルの列名は引き続き表示されます。

4

2 に答える 2

4

どちらDbUtilsを使用しているかを推測すると、いくつかのことが思い浮かびます。

  • ワイルドカードの代わりに、目的の列ごとに SQL エイリアスを使用します。

    SELECT column_name AS alias_name;
    
  • 利用可能な API を使用して、作成TableModel に を更新します。DbUtils.resultSetToTableModel()

于 2013-02-15T15:43:12.477 に答える
2

DbUtils が列の値を変更するための API を提供しない場合は、標準のテーブル クラスを使用できるはずです。

TableColumnModel tcm = table.getColumnModel();
TableColumn tc = tcm.getColumn(...);
tc.setHeaderValue( "..." );
于 2013-02-15T16:54:16.047 に答える