Als u SwingWorker
niet kunt gebruiken gebruik dan SwingUtilities.invokeLater
, bijv.:
if (progress != Path.operationProgress) {
final int progressCopy = progress; // Probably not final so copy is needed
SwingUtilities.invokeLater(new Runnable() {
@Override
void run() {
operationsProgressBar.setValue(progressCopy);
}
});
}
Opmerking:wanneer u dit doet, wordt alles gebruikt in run
moet definitief zijn of er moeten andere maatregelen zijn om toegang te krijgen tot de variabelen. Deze code is in dat opzicht symbolisch.
U moet bewerkingen uitvoeren op Swing-componenten buiten de thread voor het verzenden van gebeurtenissen, er is geen manier om dit te omzeilen.