Увеличение значения в jTable - PullRequest
0 голосов
/ 15 ноября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...