Я работаю над проектом для отслеживания товаров, например, корзиной для приложения для покупок.Я решил использовать таблицу, так как это лучший метод, который я нашел, чтобы можно было как добавлять элементы, так и удалять их, используя только сенсорный экран.Однако в настоящее время у меня возникают проблемы с накоплением количества товара.Я использовал следующий код для обновления ячейки, которая соответствует определенному количеству элементов, но, кажется, перестает работать, когда он достигает 2 элементов, без сообщения об ошибке.В качестве теста я попытался увеличить начальное количество предмета с 1 до 10 и изменить код так, чтобы вместо начисления по 1 за каждый клик он вычитался.Это, однако, не сработало, как ожидалось, вместо того, чтобы количество выросло прямо с 10 до 0. Пожалуйста, кто-нибудь помогите.Я скопировал весь код, отличный от кода ниже.
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 вызывается при нажатии кнопки в моем фрейме.Он содержит номер, который используется для проверки места хранения, чтобы увидеть, какой элемент подключен к этой кнопке, а затем использует этот номер элементов для заполнения таблицы.