[英]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.