我正在研究一个用于跟踪物品的项目,例如购物应用程序的购物篮。 我决定使用表格,因为这是我发现的最好的方法,因为它能够仅通过触摸屏添加和删除项目。但是,我目前在累计项目数量方面遇到问题。 我使用以下代码更新与特定项目数量匹配的单元格,但是当它遇到2个项目时似乎停止工作,而不会产生错误消息。 作为测试,我尝试将项目的初始数量从1增加到10,并更改代码,以使每次点击不会累加1。但是,此操作未按预期运行,而是数量从10变为0。请有人帮助。除了下面的from代码,我已经复制了所有代码。
public void checkmaster(String button){
int MatchFound = 0;
String itemnumber="";
//use button to find item no
try{
BufferedReader in2 = new BufferedReader(new FileReader("C:\\Users\\kyleg\\Desktop\\LiveOrderTestFiles\\Buttons\\"+button+".txt"));
String line2;
System.out.println("reading file");
while((line2 = in2.readLine()) != null){
itemnumber=line2;
}
in2.close();} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
//check master
int MasterTableRowCount = jTable2.getRowCount();
for(int i=0; i<MasterTableRowCount; i++){
System.out.println(i);
int row = i ;
String value = jTable2.getModel().getValueAt(row, 0).toString();
if(value.equals(itemnumber)){
int Quantity = Integer.parseInt(jTable2.getModel().getValueAt(row, 2).toString());
updateMasterTable(row,Quantity);
MatchFound=1;
}
}
if(MatchFound==0){addToMasterTable(itemnumber);}
}
public void updateMasterTable(int row,int Quantity){
int NewQuantity = Quantity-1;
jTable2.setValueAt(NewQuantity, row, 1);
}
public void addToMasterTable(String itemnumber){
DefaultTableModel model = (DefaultTableModel) jTable2.getModel();
int rownumber = jTable1.getRowCount();
Vector row = new Vector();
row.add(itemnumber);
row.add("10");
row.add(rownumber+1);
model.addRow(row);
}
在框架上单击一个按钮时,将调用checkmaster类。它带有一个数字,该数字用于检查存储位置以查看哪个项目与该按钮连接,然后使用该项目编号填写表格。