从另一个jtable填充java的jtable

qcbq4gxm  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(306)

我有两个 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。我很欣赏任何解决方案,无论是修复代码还是提供不同的解决方案。谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题