4.1 Component

AWT - Abstract Window Toolkit 

यह एक API है जिसकी सहायता से GUI (Window Based) Applications का निर्माण किया जा सकता है | 

AWT प्लेटफार्म-आश्रित (Platform-dependent) है अर्थात इसके GUI अवयव का चित्रण ऑपरेटिंग सिस्टम के अनुसार होता है | जो भिन्न ऑपरेटिंग सिस्टम के लिए भिन्न हो सकता है | 

AWT भारी-भरकम (heavyweight) है अर्थात इसके GUI अवयवों द्वारा ऑपरेटिंग सिस्टम के अत्यधिक संसाधनों (OS resources) का उपयोग होता है | इसके द्वारा किसी अवयव को चित्रित करने के लिए ऑपरेटिंग सिस्टम की native sub-routines  का उपयोग किया जाता है | 


चूँकि AWT platform-dependent and heavyweight  है अतः वर्तमान में GUI डिजाईन में इसका उपयोग न के बराबर किया जाता है | इसकी जगह Swing API का उपयोग किया जाता है जो platform independent तथा lightweight है | 

java.awt -  AWT की समस्त classes (जैसे - TextField, Label, Button, RadioButton, CheckBox, Choice, List, Menu आदि ) java.awt नाम के पैकेज (package) में अवस्थित है | अतः AWT का प्रयोग अपने एप्लीकेशन में करने के लिए हमें इस पैकेज से विभिन्न classes  को इम्पोर्ट करना ही होगा | 


Java AWT Class Hierarchy


AWT Class Hierarchy


Component (अवयव) 


सभी अवयव जैसे button, text fields, scrollbars, list, choice आदि को component के नाम से जाना जाता है | 

AWT में प्रत्येक अवयव (Component) के लिए एक class होती है | 

प्रत्येक अवयव को screen पर दर्शाने के लिए उसे Container पर add करना पड़ता है | अर्थात Container एक ऐसी जगह है जिस पर दुसरे components को रखा जा सकता है | 

एक Container अवयवों के समूह को धारण करता है तथा यह उनके layout को भी नियंत्रित करता है | 

Container स्वयं भी एक Component है अतः एक container के अन्दर दुसरे container को रखा जा सकता है | 

AWT में चार प्रकार के Containers उपलब्ध है - 

1. Window   

2. Frame     

3. Dialog     

4. Panel


Frame और Dialog दोनों Window class के subclass है | 


Border Title Menubar Remark 
Window No No No
Dialog Yes Yes No इसका स्वतंत्र अस्तित्व नहीं होता है | प्रत्येक Dialog class के object के साथ सम्बंधित Frame class का object 
होना आवश्यक है | 
Panel No No No यह एक प्रकार का generic  container है जिस पर components को रखा जा सकता है | 
Frame Yes Yes Yes GUI application के निर्माण में अधिकतर इसी class का उपयोग होता है | 


Useful Methods of Component class

Method   Description
public void add(Component c)   inserts a component on this component.
public void setSize(int width,int height)    sets the size (width and height) of the component.
public void setLayout(LayoutManager m)    defines the layout manager for the component.
public void setVisible(boolean status)   changes the visibility of the component, by default false.


Frame class की सहायता से GUI application का निर्माण दो प्रकार से किया जा सकता है - 

1. Frame class को extend करके  (Inheritance)
2. Frame class का object लेकर  (Composition / association)



Example 1. Creating GUI application by extending Frame class  (Inheritance)   
import java.awt.*;
/* We have extended the Frame class here,                                           
 * thus our class "SimpleExample" would behave
 * like a Frame                                                                                         
 */
public class SimpleExample extends Frame{
    SimpleExample(){  
        Button b=new Button("Button!!"); 
        
        // setting button position on screen
        b.setBounds(50,50,50,50);  
        
        //adding button into frame 
        add(b); 
        
        //Setting Frame width and height
        setSize(500,300); 
        
        //Setting the title of Frame
        setTitle("This is my First AWT example"); 
        
        //Setting the layout for the Frame
        setLayout(new FlowLayout());
        
        /* By default frame is not visible so 
         * we are setting the visibility to true 
         * to make it visible.
         */
        setVisible(true);  
    }  
    public static void main(String args[]){  
         // Creating the instance of Frame
         SimpleExample fr=new SimpleExample();  
    }
}


Example - 2 By creating instance / object of frame class (association)

import java.awt.*;
public class Example2 {
   Example2()
   {
      //Creating Frame    
      Frame fr=new Frame();       
      
      //Creating a label
      Label lb = new Label("UserId: "); 
      
      //adding label to the frame
      fr.add(lb);           
      
      //Creating Text Field
      TextField t = new TextField();
      
      //adding text field to the frame
      fr.add(t);
      
      //setting frame size
      fr.setSize(500, 300);  
      
      //Setting the layout for the Frame
      fr.setLayout(new FlowLayout());
            
      fr.setVisible(true);                
   }
   public static void main(String args[])
   {
       Example2 ex = new Example2(); 
   }
}


Last modified: Thursday, 16 January 2020, 11:38 AM