- AWT का अर्थ Abstract Window ToolKit है और यह Java GUI प्रोग्रामिंग को सपोर्ट करता है। यह स्टैंड-अलोन Java एप्लिकेशन्स/एप्लेट्स के लिए एक पोर्टेबल GUI लाइब्रेरी है। AWT हमारे एप्लिकेशन और नेटिव GUI के बीच कनेक्शन प्रदान करता है जबकि Java Swing GUI कंपोनेंट्स का एक सेट इम्प्लीमेंट करता है जो AWT तकनीक पर निर्माण करते हैं और यह प्लगेबल लुक एंड फील प्रदान कर सकता है। Java Swing पूरी तरह से Java प्रोग्रामिंग भाषा में इम्प्लीमेंटेड है।
- सबसे पहले, हैवी-वेट का अर्थ है कोड को लोड होने में तुलनात्मक रूप से अधिक समय लगेगा और यह अधिक सिस्टम संसाधनों का उपभोग करेगा। AWT को हैवी-वेट माना जाता है क्योंकि इसके कंपोनेंट्स अंतर्निहित ऑपरेटिंग सिस्टम पर निर्भर हैं। उदाहरण के लिए, जब हम java.awt.Checkbox क्लास का ऑब्जेक्ट बनाते हैं, तो इसका अंतर्निहित ऑपरेटिंग सिस्टम हमारे लिए एक चेकबॉक्स जनरेट करेगा। यही कारण है कि AWT कंपोनेंट्स प्लेटफॉर्म डिपेंडेंट हैं।
- दूसरी ओर, अधिकांश Java Swing कंपोनेंट्स Java में ही इम्प्लीमेंटेड हैं। कुछ टॉप लेवल कंपोनेंट्स जैसे विंडोज ऑपरेटिंग सिस्टम पर निर्भर हैं। लेकिन फिर भी, समग्र प्रोग्राम तुलनात्मक रूप से AWT से लाइट-वेट है।
- Java Swing AWT का एडवांस्ड और ऑप्टिमाइज़्ड वर्जन है और यह AWT के शीर्ष पर बनाया गया है। फिर भी, कई AWT क्लासेस Swing में सीधे या इनडायरेक्टली उपयोग की जाती हैं। Java Swing में आगे बढ़ने से पहले AWT की बेसिक्स करना महत्वपूर्ण है। अन्यथा, हम Java में GUI करते समय कई कंट्रोल डेलिगेशन्स के बारे में अंतर्निहित तथ्यों को नहीं समझ सकते।
उदाहरण
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();
}
}
आउटपुट
