如何使用来自 2 个不同列表的内容填充 JTable?我有 2 个包含对象的列表,这些对象是从数据库中的 2 个不同表中获得的。然后我想把它们全部放在 JTable 的一行中。所以我做了2个for循环,一个添加list1的内容,另一个for循环添加第二个列表的内容。
问题是如果数据库中有不止一行数据,第二个列表只是不断重复相同的信息
这是我的代码
private void executeHQLQuery() {
try {
Session session = HibernateUtil.getSessionFactory()
.openSession();
session.beginTransaction();
Query q = session.createQuery("from Modelo as m");
Query q1 = session.createQuery("from Cidade as e");
List < Modelo > resultList = q.list();
Integer codModelo = new Integer(resultList.get(0).getCodModelo());
List < Cidade > resultList2 = q1.list();
displayResult(codModelo, resultList2, resultList);
session.getTransaction().commit();
} catch (HibernateException he) {
he.printStackTrace();
}
}
private void displayResult(Integer x, List resultList2, List resultList) {
Vector < String > nomeTabela = new Vector < String > ();
Vector tableData = new Vector();
nomeTabela.add("codModelo");
nomeTabela.add("codCidade");
nomeTabela.add("nomeCidade");
nomeTabela.add("estadoCidade");
nomeTabela.add("paisCidade");
nomeTabela.add("nomeModelo");
nomeTabela.add("anoModelo");
nomeTabela.add("marcaModelo");
for (Object o: resultList2) { //Works fine
Cidade c = (Cidade) o;
Vector < Object > oneRow = new Vector < Object > ();
oneRow.add(x);
oneRow.add(c.getCodCidade());
oneRow.add(c.getNomeCidade());
oneRow.add(c.getEstadoCidade());
oneRow.add(c.getPaisCidade());
for (Object o1: resultList) {
Modelo m = (Modelo) o1;
oneRow.add(m.getNomeModelo());
oneRow.add(m.getAnoModelo());
oneRow.add(m.getMarca());
}
tableData.add(oneRow);
}
resultTable.setModel(new DefaultTableModel(tableData, nomeTabela));
}
resultList2 工作正常,resultList 只是继续显示数据库中最后一个 Modelo 表的信息