JTable を使用して、MySQL SELECT クエリの結果を表示します。そのようなテーブル モデル コードの一部:
public void setDataSource(ResultSet rs) throws Exception {
data.clear();
columnNames.clear();
columnTypes.clear();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount=rs md .getColumnCount();
for (int i=0; i<columnCount; i++) {
columnNames.add(rsmd.getColumnName(i+1));
Classtype =Cl as s.forName(rsmd.getColumnClassName(i+1));
columnTypes.add(type);
// Here I need to detect is it a joined column
// and if it is to set cell editor for this column to
// a comboBox w/ data from joined table
}
fireTableStructureChanged();
while ( rs.next() ){
ArrayListrow =new ArrayList();
for ( int i=0; i<columnCount; i++) {
if(columnTypes.get(i) == String.class)
row.add(rs.getString(i+1));
else
row.add(rs.getObject(i+1));
}
synchronized(data){
data.add(row);
fireTableRowsInserted(data.size()-1,data .size()-1);
}
}
}
ご覧のとおり、一部の列は JOIN 操作によって取得される可能性があるため、実際に何であるかを検出し、それらのエディターを JOINED テーブルからの可能な値を持つコンボ ボックスに設定する必要があります。リレーション データベースに関する適切なマニュアルや書籍、swing を使用した使用法も問題ないと思います。ありがとうございました!