সুইং (Swing) হলো হালকা ওজনবিশিষ্ট জাভা প্রোগ্রাম তৈরি করার টেকনোলজি। এটি ওরাকলের জাভা ফাউন্ডেশন ক্লাসের (JFC) একটি অংশ, যেখানে জাভাতে গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) তৈরির জন্য প্রয়োজনীয় অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (API) আছে। উইন্ডোনির্ভর অ্যাপ্লিকেশন তৈরির আরেকটি গুরুত্বপূর্ণ ও জনপ্রিয় পদ্ধতি হলো অ্যাবস্ট্রাক উইন্ডো টুলকিট (AWT)। এতে উইন্ডোতে ব্যবহার করার জন্য বিভিন্ন কম্পোনেন্ট রয়েছে। সুইং টেকনোলজির মাধ্যমে অ্যাবস্ট্রাক উইন্ডো টুলকিটে ব্যবহার হওয়া সব কম্পোনেন্ট ব্যবহার করার পাশাপাশি এর লুক অ্যান্ড ফিল, লাইটওয়েট বৈশিষ্ট্যের মাধ্যমে দৃষ্টিনন্দন কম্পোনেন্ট উপহার দেয়া যায়। এটি অ্যাবস্ট্রাক উইন্ডো টুলকিট থেকে শক্তিশালী, কিন্তু সহজে ব্যবহারযোগ্য কম্পোনেন্ট রয়েছে। সুইংয়ে অ্যাডভান্সড ফিচার যেমন লিস্ট, ট্যাবড প্যানেল, স্ক্রল প্যানেল, ট্রি, টেবিল ইত্যাদি সংযুক্ত করা হয়েছে।
চিত্র : সুইংয়ে সাপোর্ট করা কম্পোনেন্ট
চিত্র : অ্যাবস্ট্রাক উইন্ডো টুলকিট কম্পোনেন্ট
অ্যাবস্ট্রাক উইন্ডো টুলকিট কম্পোনেন্টের মতো সুইং প্রোগ্রামে নির্দিষ্ট প্লাটফরমের কোড ব্যবহার করা হয়নি। এটি সম্পূর্ণভাবে জাভা প্রোগ্রাম দিয়ে তৈরি করা হয়েছে। ফলে সুইং প্লাটফরম ইন্ডিপেনডেন্ট। জাভা স্ট্যান্ডার্ড এডিশন ১.২-এর সাথে সুইং সংযুক্ত করা হয়েছে এবং এর সব ক্লাস এবং কম্পোনেন্ট javax.swing প্যাকেজে রয়েছে।
চিত্র : সুইংয়ের আর্কিটেকচার
সুইংয়ের বৈশিষ্ট্য
০১. এক্সটেনসিবল : সুইং মূলত মডিউলার/কম্পোনেন্ট ভিত্তিতে গঠিত, যেখানে বিভিন্ন মডিউলকে এর সাথে সংযুক্ত করে চাহিদামাফিক কাজ করা যায়। এর কম্পোনেন্টগুলো javax.swing.JComponent ক্লাসকে ইনহেরিট করে। এছাড়া প্রয়োজনমাফিক বিভিন্ন কম্পোনেন্ট যোগ করে বড় আকারের কাজ সম্পাদন করার পাশাপাশি প্রোগ্রামকে ইচ্ছেমতো বাড়ানো যায়।
০২. পরিবর্তনযোগ্য : সুইং প্রোগ্রামে ব্যবহৃত বিভিন্ন কম্পোনেন্টের ওপর নিয়ন্ত্রণ বজায় রাখে। এছাড়া কম্পোনেন্টগুলোকে সাজানো, বর্ডার দেয়া এবং এদের বৈশিষ্ট্যগুলোকে প্রয়োজনমতো পরিবর্তন করা যায়। ব্যবহারকারী খুব সাধারণভাবেই প্রোগ্রামের মাধ্যমে কালার, ব্যাকগ্রাউন্ড এবং স্বচ্ছতার বিষয়টি পরিবর্তন করতে পারেন। এছাড়া সুইংয়ের মাধ্যমে একটি ইউনিক গ্রাফিক্যাল ইউজার ইন্টারফেস তৈরি করাও সম্ভব।
০৩. ইচ্ছেমত সাজানো : সুইংয়ে তৈরি করা প্রোগ্রাম রানটাইমে পরিবর্তন এবং সাজানো যায়। রানটাইমে কম্পোনেন্টগুলোকে কোনো ধরনের প্রোগ্রামিং কোড পরিবর্তন করা ছাড়াই সোয়াপিং এবং এদের লুকিং পরিবর্তন করা যায় ।
০৪. হালকা ইউজার ইন্টারফেস : সুইং প্রোগ্রামে তৈরি করা ইউজার ইন্টারফেস অ্যাবস্ট্রাক উইন্ডো টুলকিট ইন্টারফেস থেকে হালকা। ফলে প্রোগ্রাম লোড হতে কম সময় লাগে।
চিত্র : সুইং লুক অ্যান্ড ফিল
AWT এবং Swing-এর মধ্যে পার্থক্য
AWT Swing
AWT কম্পোনেন্টগুলো প্লাটফরম ডিপেনডেন্ট। Swing কম্পোনেন্টগুলো প্লাটফরম ইন্ডিপেনডেন্ট।
AWT কম্পোনেন্টগুলো ভারি ওজনবিশিষ্ট। Swing কম্পোনেন্টগুলো হালকা ওজনবিশিষ্ট।
AWT লুক অ্যান্ড ফিল সাপোর্ট করে না। Swing লুক অ্যান্ড ফিল সাপোর্ট করে।
AWT কিছুসংখ্যক কম্পোনেন্টকে সাপোর্ট করে। Swing অনেক বেশি ও শক্তিশালী কম্পোনেন্টকে সাপোর্ট করে। যেমন- টেবিল, লিস্ট, স্ক্রল প্যান, colorchooser, tabbedpane ইত্যাদি।
AWT MVC-কে (Model View Controller) অনুসরণ করে না। Swing MVC-কে (Model View Controller) অনুসরণ করে।
চিত্র : AWT এবং Swing-এর রুট ক্লাস
ফিডব্যাক : balaith@gmail.com