এডাব্লিউটি (AWT) স্থাপত্য (Architecture) একটি এমন কাঠামো যা Java GUI অ্যাপ্লিকেশন তৈরি করার জন্য প্ল্যাটফর্ম-নির্ভর উপাদানগুলির ওপর নির্ভর করে। AWT স্থাপত্যে মূলত তিনটি স্তরের (Layer) সমন্বয়ে কাজ হয়:
১. এপ্লিকেশন লেভেল (Application Level)
এটি ব্যবহারকারী বা প্রোগ্রামের অংশ, যেখানে GUI উপাদানগুলো তৈরি করা হয়। এখানে প্রোগ্রামার AWT কম্পোনেন্ট ব্যবহার করে, যেমন:
- Button, Label, TextField, TextArea ইত্যাদি উপাদান তৈরি করেন।
- GUI উপাদানগুলির জন্য ইভেন্ট হ্যান্ডলিং কোড লেখা হয়।
২. সোর্স লেভেল (Source Level)
এই স্তরে AWT ক্লাসগুলির মধ্যে সাধারণ যোগাযোগ ও ইন্টারঅ্যাকশন হয়। উদাহরণস্বরূপ, Button, Label, TextField ইত্যাদি AWT ক্লাসগুলি এখানে প্রোগ্রাম লজিকের সাথে কাজ করে। এ স্তরে কোড অর্ন্তগতভাবে ক্লাস ডেফিনিশন, মেথড কল, এবং ইভেন্ট হ্যান্ডলিং পরিচালনা করা হয়।
৩. নেটিভ লেভেল (Native Level)
এই স্তরটি প্ল্যাটফর্ম-নির্ভর এবং Java Virtual Machine (JVM) থেকে বেরিয়ে আসা নেটিভ কোডের সাথে যোগাযোগ করে। এটি অপারেটিং সিস্টেমের নেটিভ GUI উপাদানগুলির ওপর ভিত্তি করে কাজ করে, যেমন উইন্ডোজ, ম্যাক, লিনাক্স। এই স্তরের মাধ্যমে AWT কম্পোনেন্টগুলি কার্যকরভাবে ব্যবহারকারী ইন্টারফেস তৈরি করতে পারে।
AWT স্থাপত্যের মূল উপাদান
- AWT Component
AWT কম্পোনেন্টগুলি, যেমনButton,TextField,TextArea,Labelইত্যাদি, প্ল্যাটফর্ম-নির্ভর হতে পারে, কিন্তু তাদের সঙ্গেও Java AWT লোগিক এবং ইভেন্ট হ্যান্ডলিং থাকে। AWT ক্লাসগুলির মধ্যে দুটি প্রধান শ্রেণি রয়েছে:- Container: যেমন
Frame,Panel,Dialogইত্যাদি। - Non-Container: যেমন
Button,TextField,Labelইত্যাদি।
- Container: যেমন
- Peer Classes
AWT-এর প্রতিটি কম্পোনেন্টের জন্য একটি "peer class" থাকে, যা প্ল্যাটফর্ম নির্ভরভাবে GUI উপাদানটির রেন্ডারিং এবং প্রপার্টি সেটিংস সম্পন্ন করে। এটি মূলত নেটিভ অপারেটিং সিস্টেমের কম্পোনেন্টের সাথে সংযোগ স্থাপন করে। যেমন, Windows প্ল্যাটফর্মের জন্যButtonPeerএবংLabelPeerক্লাসগুলি। - Event Handling
AWT এ ইভেন্ট হ্যান্ডলিং ব্যবস্থাপনা একধরনের listener pattern ব্যবহার করে, যেখানে ব্যবহারকারী ইনপুটের (যেমন: ক্লিক, টাইপিং, মাউস মুভ) উপর নির্ভর করে একটি ইভেন্ট তৈরি হয় এবং এটি সংশ্লিষ্ট listener দ্বারা প্রসেস করা হয়। উদাহরণস্বরূপ:- ActionListener (যেমন, একটি বাটনে ক্লিক করা)
- MouseListener (যেমন, মাউস ক্লিক করা)
- KeyListener (যেমন, কী টিপে রাখা)
- Graphics
AWT এরGraphicsক্লাস গ্রাফিকাল রেন্ডারিংকে ম্যানেজ করে, যেমন উইন্ডো বা কম্পোনেন্টের উপর গ্রাফিক্স আঁকা (যেমন লাইন, রেকটাঙ্গেল, টেক্সট ইত্যাদি)। এটি বিশেষভাবে Graphics2D (Swing-এর উন্নত সংস্করণ) এর তুলনায় সাধারণ এবং সরল।
AWT স্থাপত্যের একটি সাধারণ প্রবাহ:
- ব্যবহারকারী ইন্টারঅ্যাকশন: ব্যবহারকারী GUI উপাদানে ইন্টারঅ্যাক্ট করে (যেমন, বোতাম ক্লিক বা কী প্রেস করা)।
- ইভেন্ট সৃষ্টি: ব্যবহারকারীর ইন্টারঅ্যাকশনের মাধ্যমে একটি ইভেন্ট তৈরি হয়।
- ইভেন্ট হ্যান্ডলিং: ইভেন্টটি সংশ্লিষ্ট listener দ্বারা গ্রহন করা হয় এবং প্রক্রিয়া করা হয়।
- GUI আপডেট: গ্রাফিক্স বা কম্পোনেন্টে পরিবর্তন সাধিত হয় এবং এটি UI তে রেন্ডার হয়।
AWT এর স্থাপত্য অনেকটা এই ধাপগুলোর উপর ভিত্তি করে কাজ করে এবং প্রতিটি স্তর নেটিভ অপারেটিং সিস্টেমের সাথে ইন্টিগ্রেটেডভাবে কাজ করে, যাতে প্ল্যাটফর্ম-নির্ভর GUI উপাদানগুলির ব্যবহার নিশ্চিত করা যায়।