Hvis du ikke kan bruge SwingWorker
brug derefter SwingUtilities.invokeLater
, f.eks.:
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);
}
});
}
Bemærk:Når du gør dette, bliver alt brugt i run
skal være endelige, eller der skal være andre foranstaltninger for at få adgang til variablerne. Denne kode er symbolsk i den forbindelse.
Du skal udføre operationer på Swing-komponenter uden for hændelsesafsendelsestråden, der er ingen vej udenom.