invokeLater() मेथड SwingUtilities क्लास का एक स्टैटिक मेथड है और इसका उपयोग AWT इवेंट डिस्पैचर थ्रेड में असिंक्रोनसली कार्य करने के लिए किया जा सकता है। SwingUtilities.invokeLater() मेथड SwingUtilities.invokeAndWait() की तरह काम करता है सिवाय इसके कि यह अनुरोध को इवेंट क्यू पर रखता है और तुरंत वापस आता है। invokeLater() मेथड Runnable द्वारा संदर्भित कोड ब्लॉक के निष्पादन की प्रतीक्षा नहीं करता जिसे टार्गेट द्वारा संदर्भित किया जाता है।
सिंटैक्स
public static void invokeLater(Runnable target)
उदाहरण
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class InvokeLaterTest extends Object {
private static void print(String msg) {
String name = Thread.currentThread().getName();
System.out.println(name + ": " + msg);
}
public static void main(String[] args) {
final JLabel label= new JLabel("प्रारंभिक टेक्स्ट");
JPanel panel = new JPanel(new FlowLayout());
panel.add(label);
JFrame f = new JFrame("InvokeLater Test");
f.setContentPane(panel);
f.setSize(400, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
try {
print("5 सेकंड के लिए सो रहा है");
Thread.sleep(5000);
} catch(InterruptedException ie) {
print("सोते समय बाधित");
}
print("इवेंट थ्रेड के लिए कोड ब्लॉक बना रहा है");
Runnable setTextRun = new Runnable() {
public void run() {
try {
Thread.sleep(100);
print("setText() करने वाला है");
label.setText("नया टेक्स्ट");
} catch(Exception e) {
e.printStackTrace();
}
}
};
print("invokeLater() कॉल करने वाला है");
SwingUtilities.invokeLater(setTextRun);
print("invokeLater() से वापस");
}
}
आउटपुट

main: 5 सेकंड के लिए सो रहा है main: इवेंट थ्रेड के लिए कोड ब्लॉक बना रहा है main: invokeLater() कॉल करने वाला है main: invokeLater() से वापस AWT-EventQueue-0: setText() करने वाला है
