繁体   English   中英

单击时如何减少特定行中的数量

[英]How to decrement the quantity in a specific row while clicking

单击所选行时,我的代码中有问题,数量重置为 1

我想将其减 1,并且当数量达到最小值时,所选行将被删除。

顺便说一句,我正在使用AbstractTableModel来管理我的数据。

private void OrderListMouseClicked(java.awt.event.MouseEvent evt) {
    OrderTableModel model = (OrderTableModel) OrderList.getModel();
    Order order = new Order();
    int row = OrderList.getSelectedRow();
    int currentqty = (int) (model.getValueAt(row, 2));
    order =  model.getOrderAt(row);
    for (int i=currentqty - 1; i>=1; i--){
        currentqty = i;
    }
    order.setQuanity(currentqty);
    model.update(order);

屏幕截图

在您的点击处理程序中,您只需将值减一(而不是循环直到它为 1),如果它达到最小值,我们需要调用一个函数来删除模型中的行:

private void OrderListMouseClicked(java.awt.event.MouseEvent evt) {                                       
    OrderTableModel model = (OrderTableModel) OrderList.getModel();
    Order order = new Order();
    int row = OrderList.getSelectedRow();
    int currentqty = (int) (model.getValueAt(row, 2));
    
    order =  model.getOrderAt(row);
    // decrement current quantity by one
    currentqty--;
    // if current quantity has hit the minimum? - i assumed 0 would be the number where you want to remove the row
    if (currentqty <= 0) {
        model.removeRowAt(row);
    } else {
        order.setQuanity(currentqty);
        model.update(order);
    }
}

在您的类 OrderTableModel 中,您必须添加此功能才能使删除工作:

public void removeRowAt(int row) {
    filters.remove(row);
    fireTableRowsDeleted(row, row);
}

由于这些只是代码片段,我无法运行和测试代码,但它应该可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM