Привет, я все еще учусь, когда дело доходит до реализации SwingWorker. В настоящее время я разрабатываю приложение для настольных ПК со свингом, которое загружает очень большой объем данных, что занимает около 15 секунд. я хотел использовать swingworker для управления задачей и обновления jPrgressBar, который не работает. ниже приведен код, который я использую
private class Update extends SwingWorker<Void, Void>{
@Override
protected Void doInBackground() throws Exception {
importData();
Thread.sleep(1000);
return null;
}
protected void done(){
}
}
этот частный класс имеет метод импорта, и я понимаю, что мне нужно реализовать свойство chagelistner для jprogressbar, чтобы отслеживать и обновлять мой индикатор выполнения, и код, который я использую, приведен ниже.
public void runProgress(){
Update task = new Update();
task.addPropertyChangeListener(new PropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent evt) {
if ("progress".equals(evt.getPropertyName())){
jProgressBar1.setIndeterminate(false);
jProgressBar1.setValue((Integer) evt.getNewValue());
}
}
});
task.execute();
}
Затем я вызываю метод runPregress под действием jButton. данные успешно импортируются, но с индикатором выполнения ничего не происходит. Пожалуйста, помогите мне решить мою проблему и постарайтесь дать как можно больше объяснений, так как я все еще изучаю, как работает свингворкер.