当我在 JTable 中添加新行时,多次重复此行
此方法更新 Jtable
public final void tableaucomande(){
((DefaultTableModel)tabcommande.getModel()).getDataVector().clear();
Session S=HibernateUtil.getSessionFactory().openSession();
Criteria cr1= S.createCriteria(Commande.class);
List <Commande> lcs=cr1.list() ;
Criteria cr2= S.createCriteria(LigneCommande.class);
List <LigneCommande> lck=cr2.list() ;
if(lcs.size()!=0 && lck.size()!=0)
{
for (Commande lc:lcs)
{
for(LigneCommande lig:lck){
((DefaultTableModel)tabcommande.getModel()).addRow(new Object[]{
lc.getId_cmd(),lc.getNumcmd(),lc.getDate_cmd(),lc.getClient().getNomPrenom(),
lig.getProduit().getLib_prd(),lig.getQuantite(),lig.getProduit().getId_prd()
});
} }
// tabcommande.setRowSelectionInterval(tabcommande.getRowCount()-1,tabcommande.getRowCount()-1);
}
}
这是我添加数据的代码,而不是表中显示的行
Session S=HibernateUtil.getSessionFactory().openSession();
Transaction tx= S.beginTransaction();
ApplicationContext context3 = new ClassPathXmlApplicationContext("Beans.xml");
CommandeService cos = (CommandeService)context3.getBean("commandeService");
ClientService cls = (ClientService)context3.getBean("clientService");
ProduitService ps =(ProduitService)context3.getBean("produitService");
LigneCommandeService lcms =(LigneCommandeService)context3.getBean("ligneCommandeService");
Commande cm = new Commande();
int Qunt=Integer.parseInt(jTextField5.getText());
int idp=Integer.parseInt(produit.getModel().getValueAt(produit.getSelectedRow(), 0).toString());
Produit pro=ps.rechProduit(idp);
String tonNom = String.valueOf(jComboBox4.getSelectedItem());
Criteria q =S.createCriteria(Client.class)
.add(Restrictions.eq("nomPrenom",tonNom));
List l=q.list();
Iterator i2=l.iterator();
while(i2.hasNext())
{
idclients = ((Client)i2.next()).getIdClient();
}
Client c1=cls.rechClient(idclients);
cm.setNumcmd(Integer.parseInt(jTextField1.getText()));
cm.setDate_cmd(jDateChooser2.getDate());
cm.setDelailivr_cmd(jDateChooser4.getDate());
cm.setLieulivr_cmd(jComboBox7.getSelectedItem().toString());
cm.setModelivr(jComboBox1.getSelectedItem().toString());
cm.setEtat_cmd(jComboBox2.getSelectedItem().toString());
cm.setModepaiement(jComboBox3.getSelectedItem().toString());
cm.setMontant_cmd(jTextField8.getText());
cm.setPrixtotallivr(jTextField9.getText());
// cos.enregCommande(cm);
c1.getCommandes().add(cm);
cm.setClient(c1);
cm.setId_cmd(Integer.parseInt(tabcommande.getValueAt(tabcommande.getSelectedRow(), 0).toString()));
cos.modifCommande(cm);
cls.modifClient(c1);
int[] rows = produit.getSelectedRows();
if(rows.length>0){
DefaultTableModel model = (DefaultTableModel) produit.getModel(); //a3mel cast lena
for(int j=rows.length-1; j>=0; j--){
int prodId = (Integer) produit.getValueAt(rows[j], 0); // 0 houwa colonne number; ma tensech cast int normalement
Produit p = ps.rechProduit(prodId);
LigneCommande lm1=new LigneCommande(Qunt,cm, p);
lcms.modifLigneCommande(lm1);
}
}
JOptionPane.showMessageDialog(null, "Modification de commande Avec Succes",
"Succés", JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null, "Selectionner Une Ligne de produit",
"Information", JOptionPane.WARNING_MESSAGE);
initc();
// TODO add your handling code here:
}