কম্পিউটার টিউটোরিয়াল

জাভাতে invokeLater() মেথড কল করার পদ্ধতি


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()");   
    } 
}

আউটপুট

জাভাতে 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()


জাভাতে invokeLater() মেথড কল করার পদ্ধতি


  1. জাভাতে JComboBox-এ আইটেমগুলো সর্ট করা

  2. জাভাতে JRadioButton-গুলি অনুভূমিকভাবে কীভাবে সারিবদ্ধ করবেন?

  3. জাভাতে JButton-এ HTML টেক্সট কীভাবে বাস্তবায়ন করবেন?

  4. জাভাতে JPanel-এর paintComponent() মেথড কীভাবে বাস্তবায়ন করবেন?