在jTable

时间:2018-11-15 05:52:40

标签: java loops for-loop jtable

我正在研究一个用于跟踪物品的项目,例如购物应用程序的购物篮。 我决定使用表格,因为这是我发现的最好的方法,因为它能够仅通过触摸屏添加和删除项目。但是,我目前在累计项目数量方面遇到问题。 我使用以下代码更新与特定项目数量匹配的单元格,但是当它遇到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类。它带有一个数字,该数字用于检查存储位置以查看哪个项目与该按钮连接,然后使用该项目编号填写表格。

0 个答案:

没有答案