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("Initial text");
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("sleeping for 5 seconds");
Thread.sleep(5000);
} catch(InterruptedException ie) {
print("interrupted while sleeping");
}
print("creating the code block for an event thread");
Runnable setTextRun = new Runnable() {
public void run() {
try {
Thread.sleep(100);
print("about to do setText()");
label.setText("New text");
} catch(Exception e) {
e.printStackTrace();
}
}
};
print("about to call invokeLater()");
SwingUtilities.invokeLater(setTextRun);
print("back from invokeLater()");
}
}
আউটপুট

main: sleeping for 5 seconds main: creating the code block for an event thread main: about to call invokeLater() main: back from invokeLater() AWT-EventQueue-0: about to do setText()
