0
如何使用來自2個不同列表的內容填充JTable? 我有2個列表與我從數據庫中的2個不同表獲得的對象。 然後,我想將它們全部放入JTable中的單個行中。所以我做了2個循環,其中一個添加了list1的內容,另一個for循環添加了第二個列表的內容。將分隔列表的內容添加到JTable中
的問題是,如果有數據在數據庫中的多行,第二個列表只是不斷重複着同樣的信息
這裏是我的代碼
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表的信息