У меня есть данные, хранящиеся в Jtable, а затем я беру эти данные по строке и передавая эти данные в вызываемую процедуру в базе данных (1 вызов для каждой строки), а процедура возвращает сообщение после завершения, этот процесс занимает почти 1-2 минуты для каждого вызова, может кто-нибудь сказать мне, как я могу отобразить единый индикатор прогресса для всего процесса. (Я имею в виду 1 индикатор выполнения для всего вызова), я хочу, чтобы индикатор выполнения был закончен после завершения цикла.Как отобразить индикатор выполнения для вызова процедуры
Мой код ниже:
DefaultTableModel model = (DefaultTableModel) data.getModel();
for (int count = 0; count < model.getRowCount(); count++) {
CallableStatement csmt = con.prepareCall("{call CODE_REVIEW.PRC_WRAPPER_REVIEW(?,?,?,?)}");
String folder=model.getValueAt(count, 0).toString();
String type=model.getValueAt(count, 1).toString();
String name=model.getValueAt(count, 2).toString();
csmt.setString(1,name);
csmt.setString(2,type);
csmt.setString(3,folder);
csmt.registerOutParameter(4,java.sql.Types.VARCHAR);
csmt.execute();
String messege =csmt.getString(4);
}
Для этого вам нужно понять, что это такое EDT (Thread Dispatch Thread) и использовать поток для выполнения цикла и обновить индикатор выполнения в графическом интерфейсе. Обычно поток SwingWorker используется, поскольку его легко реализовать. – HpTerm
вы должны проверить здесь, где я приведу пример: http://stackoverflow.com/questions/10773552/jprogressbar-update-from-swingworker – HpTerm