यदि आप SwingWorker
का उपयोग नहीं कर सकते हैं फिर SwingUtilities.invokeLater
. का उपयोग करें , उदा.:
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);
}
});
}
नोट:ऐसा करते समय, run
. में उपयोग की जाने वाली सभी चीज़ें अंतिम होना चाहिए या चरों तक पहुँचने के लिए अन्य उपाय करने होंगे। इस संबंध में यह कोड प्रतीकात्मक है।
आपको ईवेंट प्रेषण थ्रेड के बाहर स्विंग घटकों पर संचालन करने की आवश्यकता है, इसके आसपास कोई रास्ता नहीं है।