एक आह्वानबाद में() विधि एक स्थिर . है स्विंग यूटिलिटीज . की विधि वर्ग और इसका उपयोग किसी कार्य को करने के लिए किया जा सकता है अतुल्यकालिक रूप से एडब्ल्यूटी . में ईवेंट डिस्पैचर थ्रेड . SwingUtilities.invokeLater() विधि SwingUtilities.invokeAndWait() . की तरह काम करती है सिवाय इसके कि यह अनुरोध को ईवेंट कतार . पर रखता है और तुरंत लौटता है . एक आह्वानबाद में() विधि चलाने योग्य . के अंदर कोड के ब्लॉक की प्रतीक्षा नहीं करती है लक्ष्य . द्वारा संदर्भित निष्पादित करने के लिए।
सिंटैक्स
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()