результат, который я получаю, является java.lang.ArrayIndexOutOfBoundsException: 4> = 0 исключение
Вы пытаетесь обновить ячейку в TableModel, которая не существует.
modelHT = new DefaultTableModel();
Вы создали пустую TableModel с 0 строкой и 0 столбцами.
modelHT.setColumnIdentifiers(rowHead);
Затем вы добавляете 7 заголовков столбцов в таблицу, но у вас все еще есть 0 строк данных.
modelHT.setValueAt(h,s,j);
Вы не можете просто установить значение ячейки, если она не существует в модели.
Если вы хотите изменить данные в ячейке, то данные должны существовать в TableModel.
Один из способов сделать это - создать TableModel с определенным количеством строк и столбцов:
//modelHT = new DefaultTableModel();
modelHT = new DefaultTableModel(rowHead, 5);
Это создаст модель с количеством столбцов, указанным вашей переменной rowHead, и 5 строками данных с нулевыми значениями в каждой ячейке.
Другой способ - сначала создать TableModel только с определенными столбцами, а затем динамически добавлять строки данных по мере необходимости:
modelHT = new DefaultTableModel(rowHead, 0);
...
modelHT.addRow(...);