কম্পিউটার

জাভাতে সুইং ওয়ার্কার ক্লাসের গুরুত্ব কী?


একজন সুইং ওয়ার্কার ক্লাস আমাদের একটি অসিঙ্ক্রোনাস করতে সক্ষম করে টাস্ক একটি কর্মী থ্রেডে (যেমন একটি দীর্ঘ-চলমান কাজ) তারপর ইভেন্ট ডিসপ্যাচ থ্রেড (EDT) থেকে সুইং উপাদান আপডেট করুন ) টাস্ক ফলাফলের উপর ভিত্তি করে। এটি জাভা 1.6 সংস্করণে চালু করা হয়েছিল৷

সুইং ওয়ার্কার ক্লাস

  • The java.swing.SwingWorker ক্লাস হল একটি টাস্ক ওয়ার্কার, যেটি ব্যাকগ্রাউন্ডে সময় সাপেক্ষ কাজ করে।
  • একজন সুইং ওয়ার্কার উদাহরণ 3টি থ্রেডের সাথে ইন্টারঅ্যাক্ট করে, বর্তমান থ্রেড , শ্রমিক থ্রেড , এবং ইভেন্ট ডিসপ্যাচ থ্রেড(EDT)।
  • কারেন্ট থ্রেড execute() কে কল করে ব্যাকগ্রাউন্ডে কাজ শুরু করার পদ্ধতি এবং অবিলম্বে ফিরে আসে।
  • কর্মী থ্রেড doInBackground() -এর আমাদের নিজস্ব সংস্করণ চালায় ব্যাকগ্রাউন্ডে একটানা পদ্ধতি।
  • ইভেন্ট ডিসপ্যাচ থ্রেড (EDT) কর্মী -এ কী ঘটেছে তা আমাদের জানানোর জন্য সময়ে সময়ে জেগে ওঠে৷ থ্রেড .
  • যখন DoInBackground() শেষ হয়েছে, ইভেন্ট ডিসপ্যাচ থ্রেড (EDT) আমাদের সম্পন্ন() সংস্করণ কল করে আমাদেরকে অবহিত করুন৷ পদ্ধতি।
  • মধ্যবর্তী মান প্রকাশ করতে, আমরা প্রকাশ (V) কল করতে পারি doInBackground()-এ পদ্ধতি . ইভেন্ট ডিসপ্যাচ থ্রেড (EDT) আমাদের প্রক্রিয়া(তালিকা)-এর সংস্করণে কল করে আমাদের অবহিত করে পদ্ধতি।
  • প্রগতি বৈশিষ্ট্য আপডেট করতে, আমরা সেটপ্রগ্রেস(i) কল করতে পারি doInBackground().-এ পদ্ধতি ইভেন্ট ডিসপ্যাচ থ্রেড (EDT) আমাদের প্রপার্টি চেঞ্জ লিস্টেনার সংস্করণে কল করে আমাদের অবহিত করে ক্লাস।
  • java.swing.JProgressbar ক্লাস হল একটি UI উপাদান যা একটি SwingWorker হিসাবে বাস্তবায়িত একটি ব্যাকগ্রাউন্ড টাস্কের অগ্রগতি দেখানোর জন্য ডিজাইন করা হয়েছে উদাহরণ।

উদাহরণ

import java.awt.*;
import java.awt.event.*;;
import javax.swing.*;
public class SwingWorkerTest {
   public static void main(String[] args) {
      EventQueue.invokeLater(new Runnable() {
         @Override
         public void run() {
            JFrame frame = new JFrame();
            JButton button = new JButton();
            button.addActionListener(new ActionListener() {
               @Override
               public void actionPerformed(ActionEvent e) {
                  new GUIWorker().execute();
               }
            });
            button.setText("Click Me !!!");
            frame.getContentPane().add(button);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.setSize(350, 300);
            frame.setVisible(true);
         }
      });
   }
}
class GUIWorker extends SwingWorker {
   private JFrame frame = new JFrame();
   private JDialog dialog = new JDialog(frame, "Swingworker Test", true);
   private JProgressBar progressBar = new JProgressBar();
   public GUIWorker() {
      progressBar.setString("Waiting on time");
      progressBar.setStringPainted(true);
      progressBar.setIndeterminate(true);
      dialog.getContentPane().add(progressBar);
      dialog.setSize(350, 300);
      dialog.setModal(false);
      dialog.setLocationRelativeTo(null);
      dialog.setVisible(true);
   }
   @Override
   protected Integer doInBackground() throws Exception {
      System.out.println( "GUIWorker doInBackground()" );
      Thread.sleep(10000);
      return 0;
   }
   @Override
   protected void done() {
      System.out.println("done");
      JLabel label = new JLabel("Task Complete");
      dialog.getContentPane().remove(progressBar);
      dialog.getContentPane().add(label);
      dialog.getContentPane().validate();
   }
}

আউটপুট

জাভাতে সুইং ওয়ার্কার ক্লাসের গুরুত্ব কী?

জাভাতে সুইং ওয়ার্কার ক্লাসের গুরুত্ব কী?


  1. জাভাতে কন্টেইনার ক্লাসের গুরুত্ব কী?

  2. জাভাতে কার্ডলেআউট ক্লাসের গুরুত্ব কী?

  3. জাভাতে GridBagConstraints ক্লাসের গুরুত্ব কী?

  4. জাভাতে সুইং ইউটিলিটি ক্লাসের গুরুত্ব কী?