У меня есть класс результатов, который хранится во всех операциях запроса. Моя проблема в том, что я пытаюсь заполнить jtable с помощью данных набора результатов, но я могу отображать данные только в одном столбце, где у меня три. Это фрагмент из класса Resultset:Итерация 2D-массив ResultSet для JTable
public static List<List<String>> getAllFabrics() throws SQLException{
sql = "SELECT * FROM fabric";
List<List<String>> values = new ArrayList<>();
List<String> id = new ArrayList<>();
List<String> item = new ArrayList<>();
List<String> supplier = new ArrayList<>();
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
//metaData = rs.getMetaData();
//int columnNum = metaData.getColumnCount();
while(rs.next()){
id.add(String.valueOf(rs.getInt("id")));
item.add(rs.getString("ItemDesc"));
supplier.add(rs.getString("Supplier"));
}
values.add(id);
values.add(item);
values.add(supplier);
return values;
}
и это JTable метод, который я пытаюсь часами, чтобы решить:
public static DefaultTableModel loadTable(){
ModelDB model = null;
DefaultTableModel tableModel = new DefaultTableModel();
tableModel.addColumn("ID");
tableModel.addColumn("Fabric");
tableModel.addColumn("Supplier");
try{
List<String> id = model.getAllFabrics().get(0);
List<String> item = model.getAllFabrics().get(1);
List<String> supplier = model.getAllFabrics().get(2);
//System.out.println(model.getAllFabrics().size()); tableModel.addRow(new Object[]{subRow});
for(List<String> row:model.getAllFabrics()){
tableModel.addRow(new Object[]{id,item,supplier});
}
}catch(SQLException ex){
ex.printStackTrace();
}
return tableModel;
}
Я не могу найти способ для перебора значений в отобразите их в соответствующей колонке.
Скорее всего, что списку colums формирования, попробуйте формирование списка строки данных мудрого и итерацию и отображать данные в JTable –
Вместо того, чтобы формировать столбец данных мудрого, форма список строк мудрые, а затем итерации и отображения данных в JTable –