- AWT মানে Abstract Window ToolKit এবং এটি জাভা GUI প্রোগ্রামিং সাপোর্ট করে। এটি স্ট্যান্ড-অ্যালোন জাভা অ্যাপ্লিকেশন/অ্যাপলেটের জন্য একটি পোর্টেবল GUI লাইব্রেরি। AWT আমাদের অ্যাপ্লিকেশন এবং নেটিভ GUI-এর মধ্যে কানেকশন প্রদান করে, যেখানে Java Swing GUI কম্পোনেন্টের একটি সেট ইমপ্লিমেন্ট করে যা AWT টেকনোলজির ওপর বিল্ট এবং এটি pluggable look and feel প্রদান করতে পারে। Java Swing সম্পূর্ণরূপে জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজে ইমপ্লিমেন্টেড।
- প্রথমে, heavy-weight বলতে এর মানে কোড তুলনামূলক বেশি সময় নিবে লোড হতে এবং বেশি সিস্টেম রিসোর্স খরচ করবে। AWT কনসিডার করা হয় heavy-weight কারণ এর কম্পোনেন্টগুলো আন্ডারলাইং অপারেটিং সিস্টেমের ওপর নির্ভরশীল। উদাহরণস্বরূপ, যখন আমরা java.awt.Checkbox ক্লাসের একটি অবজেক্ট তৈরি করি, এর আন্ডারলাইং অপারেটিং সিস্টেম আমাদের জন্য একটি চেকবক্স জেনারেট করে। এটিই কারণ, AWT কম্পোনেন্টগুলো প্ল্যাটফর্ম ডিপেন্ডেন্ট।
- দूसरी পাশে, অধিকাংশ Java Swing কম্পোনেন্ট জাভায় ইমপ্লিমেন্টেড। কিছু টপ-লেভেল কম্পোনেন্ট যেন উইন্ডো আন্ডারলাইং OS-এ ডিপেন্ডেন্ট। কিন্তু সার্বিকভাবে প্রোগ্রামটি AWT-এর চেয়ে তুলনামূলক light-weight।
- Java Swing হলো AWT-এর অ্যাডভান্সড এবং অপ্টিমাইজড ভার্সন এবং এটি AWT-এর ওপর বিল্ট। এখনও অনেক AWT ক্লাস Swing-এ সরাসরি বা ইনডায়রেক্টলি ব্যবহার হয়। জাভা GUI-তে কন্ট্রোল ডেলিগেশন সম্পর্কে বুঝতে AWT-এর বেসিক জানা গুরুত্বপূর্ণ।
উদাহরণ
import javax.swing.SwingUtilities;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Test {
public static void main(String[] args) {
ApplicationWindow window = new ApplicationWindow();
window.setVisible(true);
}
}
class ApplicationWindow extends JFrame {
public ApplicationWindow() {
this.setSize(200, 100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
Button exitButton = new Button("Exit");
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
this.add(exitButton);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Overlapping Menu");
JMenuItem menuItem = new JMenuItem("Overlapping Item");
menu.add(menuItem);
menuBar.add(menu);
this.setJMenuBar(menuBar);
this.validate();
}
}
আউটপুট
