当我点击按钮“促销”时,表格必须显示在第一行,我销售的商品,以及它的数量。但是当我第二次单击时,它会删除最后一行,并创建一个新表。如何使用新数据创建新行? 这是我的代码:
if (e.getSource()==sale)
{
int tempcod=0,tempcant=0; //tempcod is the code of the product,
temocant is the number of products sold
final DefaultTableModel model = new DefaultTableModel();
model.addColumn("Product");
model.addColumn("Price");
try
{
tempcod=Integer.parseInt(cod.getText());
tempcant=Integer.parseInt(quantity.getText());
}
catch(NumberFormatException a)
{
JOptionPane.showMessageDialog(null, "Invalid Number");
}
for (int j=0;j<nulo; j++) //nulo is the number of items at sale
{
if (tempcod==codigo[j]) //id the code i wrote exist in
the list of products
{
for (int k=0; k<nulo; k++)
{
if (tempcod==ventaActual[0][k])
{
ventaActual[1][k]+=tempcant;
}
else
{
ventaActual[0][k]=tempcod;
ventaActual[1][k]=tempcant;
}
}
model.insertRow(model.getRowCount(), new Object[]{item[j],price[j]*tempcant});//this line creates the row of the table.
//item[] is the name of the item, price[] is the price of the item
JTable Lista= new JTable(model);
lista1=new JScrollPane(Lista);
lista1.setBounds(170,150,200,200);
lista1.setEnabled(false);
lista1.setVisible(true);
this.add(lista1);
a+=(tempcant*precio[j]);
String b=Integer.toString(a);
tot.setText(b);
ventaInforme=ventaActual;
}
else
{
cod.setText(null);
cantidad_n.setText(null);
}
}
}
答案 0 :(得分:3)
您对model.insertRow的调用应该在表中插入一行并触发表的必要事件以进行更新。但是,您需要从现有表中获取现有模型,然后更新该模型。
e.g。 DefaultTableModel model =(DefaultTableModel)myTable.getModel();
您可能还应该删除创建的代码并将新表添加到容器中,除非这是您想要的。