我有两个 JTable
有4个不可编辑的 JTextField
s、 可编辑的 JSpinner
还有一个可编辑的按钮。第一个表由数据库(fish表)填充。第二个表(cart表)应该通过从所有这些表中获取值来填充 JTextField
s和 JSpinner
在两种情况下:
如果fish id还不存在,请插入新的fish和
如果fish id已经存在,则通过添加数量来更新fish quantity。
这是我的密码:
Vector<Object> datas = new Vector(); Vector<Object> datas2 = new Vector();
DefaultTableModel cartTableModel = (DefaultTableModel)tableCart.getModel();
DefaultTableModel listTableModel = (DefaultTableModel)tableList.getModel();
long subtotal = Integer.parseInt(tFishPrice.getText()) * qty;
datas.add(tFishId.getText());
datas.add(tFishName.getText());
datas.add(tFishType.getText());
datas.add(tFishPrice.getText());
datas.add(qty);
datas.add(subtotal);
int rowsList = listTableModel.getRowCount();
int rowsCart = tableCart.getRowCount();
String idList = tableList.getValueAt(tableList.getSelectedRow(), 0).toString();
if(cartTableModel.getDataVector().isEmpty()){
int oldQty = Integer.parseInt(tableList.getValueAt(tableList.getSelectedRow(), 4).toString());
listTableModel.setValueAt((oldQty-qty), tableList.getSelectedRow(), 4);
cartTableModel.addRow(datas);
}else{
int index = 0;
while( index<rowsCart){
String idCart = cartTableModel.getValueAt(index, 0).toString();
if(idCart.equals(tFishId.getText())){
JOptionPane.showMessageDialog(this, "samaaa");
int oldQtyCart = Integer.parseInt(cartTableModel.getValueAt(index, 4).toString());
int oldPriceCart = Integer.parseInt(cartTableModel.getValueAt(index, 5).toString());
int newQtyCart = oldQtyCart + qty;
long newTotal = oldPriceCart*newQtyCart;
cartTableModel.setValueAt(newQtyCart, index, 4);
cartTableModel.setValueAt(newTotal, index, 5);
int oldQty = Integer.parseInt(tableList.getValueAt(tableList.getSelectedRow(), 4).toString());
int y;
for(y = 0; y < rowsList; y++){
String id = tableList.getValueAt(y, 0).toString();
if(id.equals(idCart)){
int oldqty = Integer.parseInt(listTableModel.getValueAt(y, 4).toString());
listTableModel.setValueAt(oldqty-qty, y, 4);
break;
}
}
}else{
String index2 =cartTableModel.getValueAt(index, 0).toString();
JOptionPane.showMessageDialog(this, index2);
if(!index2.equals(tFishId.getText())){
cartTableModel.addRow(datas);
break;
}
最后,我在第二个表中添加了一个新项,尽管我添加了相同的id。我很欣赏任何解决方案,无论是修复代码还是提供不同的解决方案。谢谢
暂无答案!
目前还没有任何答案,快来回答吧!