स्वांग - त्वरित गाइड

JAVA आधारित फ्रंट एंड / GUI एप्लिकेशन बनाने के लिए डेवलपर के जीवन को आसान बनाने के लिए स्विंग एपीआई एक्स्टेंसिबल GUI कंपोनेंट्स का एक सेट है। यह AWT API के ऊपर बना है और AWT API के प्रतिस्थापन के रूप में कार्य करता है, क्योंकि इसमें AWT नियंत्रणों के अनुरूप लगभग हर नियंत्रण है। निम्न मानदंड को पूरा करने के लिए स्विंग घटक एक मॉडल-व्यू-कंट्रोलर आर्किटेक्चर का अनुसरण करता है।

  • एक ही एपीआई कई प्रकार के देखने और महसूस करने के लिए पर्याप्त होना चाहिए।

  • एपीआई को मॉडल से संचालित किया जाना चाहिए ताकि उच्चतम स्तर के एपीआई के लिए डेटा होना आवश्यक न हो।

  • एपीआई जावा बीन मॉडल का उपयोग करना है ताकि बिल्डर टूल और आईडीई उपयोग के लिए डेवलपर्स को बेहतर सेवाएं प्रदान कर सकें।

MVC आर्किटेक्चर

निम्नलिखित तरीके से स्विंग एपीआई वास्तुकला एमओसी वास्तुकला पर आधारित है।

  • मॉडल घटक के डेटा का प्रतिनिधित्व करता है।

  • दृश्य घटक के डेटा के दृश्य प्रतिनिधित्व का प्रतिनिधित्व करता है।

  • नियंत्रक दृश्य पर उपयोगकर्ता से इनपुट लेता है और घटक के डेटा में परिवर्तन को दर्शाता है।

  • स्विंग घटक में एक अलग तत्व के रूप में मॉडल होता है, जबकि व्यू और कंट्रोलर भाग को यूजर इंटरफेस तत्वों में क्लब किया जाता है। जिसके कारण, स्विंग में एक प्लगेबल लुक-एंड-फील आर्किटेक्चर है।

घुमाओ सुविधाएँ

  • Light Weight - स्विंग घटक देशी ऑपरेटिंग सिस्टम के एपीआई से स्वतंत्र होते हैं क्योंकि स्विंग ऑपरेटिंग सिस्टम को अंतर्निहित ऑपरेटिंग सिस्टम कॉल के बजाय शुद्ध JAVA कोड का उपयोग करके प्रदान किया जाता है।

  • Rich Controls - स्विंग ट्री, टैबबेडपेन, स्लाइडर, कलरपिकर और टेबल कंट्रोल जैसे उन्नत नियंत्रणों का एक समृद्ध सेट प्रदान करता है।

  • Highly Customizable - स्विंग नियंत्रण को बहुत आसान तरीके से अनुकूलित किया जा सकता है क्योंकि दृश्य उपस्थिति आंतरिक प्रतिनिधित्व से स्वतंत्र है।

  • Pluggable look-and-feel - उपलब्ध मूल्यों के आधार पर, रनिंग-टाइम GUI एप्लीकेशन लुक और फील को रन-टाइम में बदला जा सकता है।

यह अनुभाग आपको अपनी मशीन पर जावा डाउनलोड और सेट करने के तरीके के बारे में बताता है। पर्यावरण को स्थापित करने के लिए कृपया निम्न चरणों का उपयोग करें।

जावा एसई डाउनलोड जावा से लिंक से स्वतंत्र रूप से उपलब्ध है । इसलिए, आप अपने ऑपरेटिंग सिस्टम के आधार पर एक संस्करण डाउनलोड कर सकते हैं।

जावा डाउनलोड करने और चलाने के लिए निर्देशों का पालन करें .exeअपनी मशीन पर जावा स्थापित करने के लिए। एक बार जब आप अपनी मशीन पर जावा स्थापित कर लेते हैं, तो आपको सही इंस्टॉलेशन निर्देशिकाओं को इंगित करने के लिए पर्यावरण चर सेट करना होगा।

Windows 2000 / XP के लिए पथ की स्थापना

मान लिया आपने जावा को इनस्टॉल कर लिया है c:\Program Files\java\jdk निर्देशिका -

Step 1 - 'मेरा कंप्यूटर' पर राइट-क्लिक करें और 'गुण' चुनें।

Step 2 - 'उन्नत' टैब के अंतर्गत 'पर्यावरण चर' बटन पर क्लिक करें।

Step 3- 'पाथ' वैरिएबल को अलर्ट करें ताकि इसमें जावा एग्जीक्यूटिव का भी पथ शामिल हो। उदाहरण, यदि पथ वर्तमान में सेट है'C:\WINDOWS\SYSTEM32', तो पढ़ने के लिए अपना रास्ता बदलें 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'

विंडोज 95/98 / ME के ​​लिए पथ की स्थापना

मान लिया आपने जावा को इनस्टॉल कर लिया है c:\Program Files\java\jdk निर्देशिका -

Step 1 - संपादित करें 'C:\autoexec.bat' फ़ाइल और अंत में निम्नलिखित पंक्ति जोड़ें: 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'

लिनक्स, यूनिक्स, सोलारिस, फ्रीबीएसडी के लिए पथ की स्थापना

जावा चर को स्थापित करने के लिए पर्यावरण चर पथ को निर्धारित किया जाना चाहिए। यदि आपको ऐसा करने में परेशानी होती है, तो अपने शेल दस्तावेज़ देखें।

उदाहरण, यदि आप उपयोग करते हैं bash आपके खोल के रूप में, आप अंत में निम्नलिखित पंक्ति जोड़ेंगे '.bashrc: export PATH=/path/to/java:$PATH'

लोकप्रिय जावा संपादक

अपने जावा प्रोग्राम लिखने के लिए, आपको एक टेक्स्ट एडिटर की आवश्यकता होगी। बाजार में और भी अधिक परिष्कृत IDE उपलब्ध हैं। लेकिन अभी के लिए, आप निम्नलिखित में से एक पर विचार कर सकते हैं -

  • Notepad - विंडोज मशीन पर, आप किसी भी साधारण पाठ संपादक जैसे नोटपैड (इस ट्यूटोरियल के लिए अनुशंसित), टेक्स्टपैड का उपयोग कर सकते हैं।

  • Netbeans - नेटबीन एक जावा आईडीई है जो खुला स्रोत और मुफ्त है, जिसे से डाउनलोड किया जा सकता है https://www.netbeans.org/index.html।

  • Eclipse - एक्लिप्स भी एक जावा आईडीई है जिसे एक्लिप्स ओपन सोर्स समुदाय द्वारा विकसित किया गया है और इससे डाउनलोड किया जा सकता है https://www.eclipse.org/।

प्रत्येक उपयोगकर्ता इंटरफ़ेस निम्नलिखित तीन मुख्य पहलुओं पर विचार करता है -

  • UI Elements- ये मुख्य दृश्य तत्व हैं जो उपयोगकर्ता अंततः देखता है और उसके साथ बातचीत करता है। GWT व्यापक रूप से उपयोग किए जाने वाले और कॉमन तत्वों की एक विशाल सूची बुनियादी से जटिल तक प्रदान करता है, जिसे हम इस ट्यूटोरियल में शामिल करेंगे।

  • Layouts- वे परिभाषित करते हैं कि कैसे यूआई तत्वों को स्क्रीन पर व्यवस्थित किया जाना चाहिए और जीयूआई (ग्राफिकल यूजर इंटरफेस) को अंतिम रूप और अनुभव प्रदान करना चाहिए। यह भाग लेआउट अध्याय में शामिल किया जाएगा।

  • Behavior- ये ऐसी घटनाएं हैं जो तब होती हैं जब उपयोगकर्ता UI तत्वों के साथ बातचीत करता है। यह हिस्सा इवेंट हैंडलिंग चैप्टर में कवर किया जाएगा।

प्रत्येक SWING नियंत्रण निम्न घटक वर्ग hiearchy से गुण प्राप्त करता है।

क्र.सं. कक्षा और विवरण
1 अंग

एक घटक SWING के गैर मेनू उपयोगकर्ता-इंटरफ़ेस नियंत्रण के लिए सार आधार वर्ग है। घटक चित्रमय प्रतिनिधित्व के साथ एक वस्तु का प्रतिनिधित्व करता है

2 पात्र

एक कंटेनर एक घटक है जिसमें अन्य SWING घटक हो सकते हैं

3 JComponent

एक JComponent सभी SW UI घटकों के लिए एक आधार वर्ग है। JComponent से मिलने वाले एक SWING घटक का उपयोग करने के लिए, घटक को एक समरूप पदानुक्रम में होना चाहिए जिसकी जड़ एक शीर्ष-स्तरीय SWING कंटेनर है

यूआई तत्वों को मारना

निम्नलिखित सामान्य तौर पर उपयोग किए जाने वाले नियंत्रणों की सूची है, जो SWI का उपयोग करते हुए GUI डिजाइन करते हैं।

क्र.सं. कक्षा और विवरण
1 JLabel

एक JLabel ऑब्जेक्ट एक कंटेनर में पाठ रखने के लिए एक घटक है।

2 JButton

यह वर्ग एक लेबल बटन बनाता है।

3 JColorChooser

एक JColorChooser उपयोगकर्ता को हेरफेर करने और एक रंग का चयन करने की अनुमति देने के लिए डिज़ाइन किए गए नियंत्रणों का एक फलक प्रदान करता है।

4 JCheck बॉक्स

JCheckBox एक ग्राफिकल कंपोनेंट है जो किसी एक में हो सकता है on (सच या off (झूठी) अवस्था।

5 JRadioButton

JRadioButton वर्ग एक ग्राफिकल घटक है जो किसी भी एक में हो सकता है on (सच या off(झूठी) अवस्था। एक समूह में।

6 JList

एक JList घटक उपयोगकर्ता को टेक्स्ट आइटम की स्क्रॉलिंग सूची के साथ प्रस्तुत करता है।

7 JComboBox

एक JComboBox घटक विकल्पों के मेनू को दिखाने के लिए उपयोगकर्ता के साथ प्रस्तुत करता है।

8 JTextField

JTextField ऑब्जेक्ट एक पाठ घटक है जो पाठ की एक पंक्ति के संपादन के लिए अनुमति देता है।

9 JPasswordField

JPasswordField ऑब्जेक्ट एक पाठ घटक है जो पासवर्ड प्रविष्टि के लिए विशेष है।

10 JTextArea

JTextArea ऑब्जेक्ट एक टेक्स्ट कंपोनेंट है जो टेक्स्ट की कई लाइनों के संपादन की अनुमति देता है।

1 1 ImageIcon

एक ImageIcon नियंत्रण चिह्न इंटरफ़ेस का एक कार्यान्वयन है जो चित्र से प्रतीक को पेंट करता है

12 JScrollbar

स्क्रॉलबार नियंत्रण एक स्क्रॉल बार घटक का प्रतिनिधित्व करता है ताकि उपयोगकर्ता मानों की श्रेणी से चयन कर सके।

13 JOptionPane

JoptionPane मानक डायलॉग बॉक्स का सेट प्रदान करता है जो उपयोगकर्ताओं को एक मूल्य के लिए संकेत देता है या उन्हें किसी चीज़ की सूचना देता है।

14 JFileChooser

JFileChooser नियंत्रण एक संवाद विंडो का प्रतिनिधित्व करता है जिसमें से उपयोगकर्ता एक फ़ाइल का चयन कर सकता है।

15 JProgressBar

जैसे-जैसे कार्य पूर्णता की ओर बढ़ता है, प्रगति पट्टी कार्य के पूर्णता प्रतिशत को प्रदर्शित करती है।

16 JSlider

एक JSlider उपयोगकर्ता को एक बंधे हुए अंतराल के भीतर एक नॉब खिसकाकर ग्राफिक रूप से एक मान चुनने देता है।

17 JSpinner

जेस्पिनर एक एकल लाइन इनपुट फ़ील्ड है जो उपयोगकर्ता को एक क्रमबद्ध क्रम से संख्या या ऑब्जेक्ट मान का चयन करने देता है।

इस अध्याय में, आप ईवेंट्स, उसके प्रकारों के बारे में जानेंगे और यह भी सीखेंगे कि किसी ईवेंट को कैसे हैंडल किया जाए। उदाहरण को बेहतर समझ के लिए अध्याय के अंत में प्रदान किया गया है।

एक घटना क्या है?

किसी वस्तु की स्थिति में परिवर्तन के रूप में जाना जाता है Event, यानी, ईवेंट स्रोत की स्थिति में परिवर्तन का वर्णन करता है। घटनाक्रम ग्राफिकल यूजर इंटरफेस घटकों के साथ उपयोगकर्ता बातचीत के परिणामस्वरूप उत्पन्न होते हैं। उदाहरण के लिए, एक बटन पर क्लिक करना, माउस को ले जाना, कीबोर्ड के माध्यम से एक चरित्र में प्रवेश करना, सूची से एक आइटम का चयन करना और पृष्ठ को स्क्रॉल करना ऐसी गतिविधियां हैं जो किसी घटना के कारण होती हैं।

घटना के प्रकार

घटनाओं को मोटे तौर पर दो श्रेणियों में वर्गीकृत किया जा सकता है -

  • Foreground Events- इन घटनाओं के लिए उपयोगकर्ता के सीधे संपर्क की आवश्यकता होती है। वे ग्राफिकल यूजर इंटरफेस में ग्राफिकल घटकों के साथ बातचीत करने वाले व्यक्ति के परिणामों के रूप में उत्पन्न होते हैं। उदाहरण के लिए, एक बटन पर क्लिक करना, माउस को हिलाना, कीबोर्ड के माध्यम से एक चरित्र में प्रवेश करना, सूची से एक आइटम का चयन करना, पृष्ठ को स्क्रॉल करना आदि।

  • Background Events- इन घटनाओं को अंतिम उपयोगकर्ता की सहभागिता की आवश्यकता होती है। ऑपरेटिंग सिस्टम में व्यवधान, हार्डवेयर या सॉफ्टवेयर की विफलता, टाइमर की समाप्ति, और ऑपरेशन पूरा होना पृष्ठभूमि की घटनाओं के कुछ उदाहरण हैं।

इवेंट हैंडलिंग क्या है?

ईवेंट हैंडलिंग वह तंत्र है जो ईवेंट को नियंत्रित करता है और यह तय करता है कि अगर कोई घटना होती है तो क्या होना चाहिए। इस तंत्र में एक कोड होता है जिसे एक इवेंट हैंडलर के रूप में जाना जाता है, जिसे किसी घटना के होने पर निष्पादित किया जाता है।

जावा घटनाओं को संभालने के लिए डेलिगेशन इवेंट मॉडल का उपयोग करता है। यह मॉडल घटनाओं को उत्पन्न करने और संभालने के लिए मानक तंत्र को परिभाषित करता है।

डेलिगेशन इवेंट मॉडल में निम्नलिखित प्रमुख प्रतिभागी हैं।

  • Source- स्रोत एक वस्तु है जिस पर घटना होती है। स्रोत हैंडलर को हुई घटना की जानकारी प्रदान करने के लिए जिम्मेदार है। जावा हमें स्रोत वस्तु के लिए कक्षाएं प्रदान करता है।

  • Listener- इसे इवेंट हैंडलर के नाम से भी जाना जाता है। श्रोता किसी घटना के प्रति प्रतिक्रिया उत्पन्न करने के लिए जिम्मेदार है। जावा कार्यान्वयन के दृष्टिकोण से, श्रोता भी एक वस्तु है। श्रोता तब तक प्रतीक्षा करता है जब तक कि वह एक घटना प्राप्त न कर ले। घटना प्राप्त होने के बाद, श्रोता घटना की प्रक्रिया करता है और फिर लौट आता है।

इस दृष्टिकोण का लाभ यह है कि उपयोगकर्ता इंटरफ़ेस तर्क पूरी तरह से तर्क से अलग हो जाता है जो घटना उत्पन्न करता है। उपयोगकर्ता इंटरफ़ेस तत्व एक ईवेंट के प्रसंस्करण को कोड के एक अलग टुकड़े में सौंपने में सक्षम है।

इस मॉडल में, श्रोता को स्रोत ऑब्जेक्ट के साथ पंजीकृत होने की आवश्यकता होती है ताकि श्रोता को घटना की सूचना प्राप्त हो सके। यह ईवेंट को संभालने का एक कुशल तरीका है क्योंकि ईवेंट सूचनाएँ केवल उन श्रोताओं को भेजी जाती हैं जो उन्हें प्राप्त करना चाहते हैं।

इवेंट हैंडलिंग में शामिल कदम

Step 1 - उपयोगकर्ता बटन पर क्लिक करता है और घटना उत्पन्न होती है।

Step 2 - संबंधित घटना वर्ग की वस्तु स्वचालित रूप से बनाई जाती है और स्रोत और घटना के बारे में जानकारी उसी वस्तु के भीतर मिलती है।

Step 3 - इवेंट ऑब्जेक्ट पंजीकृत श्रोता वर्ग की विधि के लिए भेजा जाता है।

Step 4 - विधि निष्पादित हो जाती है और रिटर्न मिलता है।

श्रोता के बारे में याद करने के लिए अंक

  • एक श्रोता वर्ग को डिजाइन करने के लिए, आपको कुछ श्रोता इंटरफेस विकसित करना होगा। ये श्रोता इंटरफेस कुछ सार्वजनिक अमूर्त कॉलबैक विधियों का अनुमान लगाते हैं, जिन्हें श्रोता वर्ग द्वारा लागू किया जाना चाहिए।

  • यदि आप किसी भी पूर्वनिर्धारित इंटरफेस को लागू नहीं करते हैं, तो आपकी कक्षा स्रोत ऑब्जेक्ट के लिए श्रोता वर्ग के रूप में कार्य नहीं कर सकती है।

कॉलबैक मेथड्स

ये वे तरीके हैं जो एपीआई प्रदाता द्वारा प्रदान किए जाते हैं और एप्लिकेशन प्रोग्रामर द्वारा परिभाषित किए जाते हैं और एप्लिकेशन डेवलपर द्वारा लागू किए जाते हैं। यहां कॉलबैक विधियां एक घटना विधि का प्रतिनिधित्व करती हैं। एक घटना के जवाब में, जावा jre कॉलबैक विधि आग जाएगा। ऐसे सभी कॉलबैक तरीके श्रोता इंटरफेस में प्रदान किए जाते हैं।

यदि कोई घटक कुछ श्रोता को अपनी घटनाओं को सुनने के लिए चाहता है, तो श्रोता को स्रोत को स्वयं को पंजीकृत करना होगा।

इवेंट हैंडलिंग उदाहरण

अपनी पसंद के किसी भी संपादक का उपयोग करके निम्नलिखित जावा प्रोग्राम बनाएं D:/ > SWING > com > tutorialspoint > gui >

SwingControlDemo.java

package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo swingControlDemo = new SwingControlDemo();  
      swingControlDemo.showEventDemo();       
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java SWING Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      headerLabel = new JLabel("",JLabel.CENTER );
      statusLabel = new JLabel("",JLabel.CENTER);        
      statusLabel.setSize(350,100);
      
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showEventDemo(){
      headerLabel.setText("Control in action: Button"); 

      JButton okButton = new JButton("OK");
      JButton submitButton = new JButton("Submit");
      JButton cancelButton = new JButton("Cancel");

      okButton.setActionCommand("OK");
      submitButton.setActionCommand("Submit");
      cancelButton.setActionCommand("Cancel");

      okButton.addActionListener(new ButtonClickListener()); 
      submitButton.addActionListener(new ButtonClickListener()); 
      cancelButton.addActionListener(new ButtonClickListener()); 

      controlPanel.add(okButton);
      controlPanel.add(submitButton);
      controlPanel.add(cancelButton);       

      mainFrame.setVisible(true);  
   }
   private class ButtonClickListener implements ActionListener{
      public void actionPerformed(ActionEvent e) {
         String command = e.getActionCommand();  
         
         if( command.equals( "OK" ))  {
            statusLabel.setText("Ok Button clicked.");
         } else if( command.equals( "Submit" ) )  {
            statusLabel.setText("Submit Button clicked."); 
         } else {
            statusLabel.setText("Cancel Button clicked.");
         }  	
      }		
   }
}

कमांड प्रॉम्प्ट का उपयोग करके प्रोग्राम को संकलित करें। के लिए जाओD:/ > SWING और निम्न कमांड टाइप करें।

D:\AWT>javac com\tutorialspoint\gui\SwingControlDemo.java

यदि कोई त्रुटि नहीं होती है, तो इसका मतलब है कि संकलन सफल है। निम्नलिखित कमांड का उपयोग करके प्रोग्राम को चलाएं।

D:\AWT>java com.tutorialspoint.gui.SwingControlDemo

निम्न आउटपुट सत्यापित करें।

इवेंट क्लासेस ईवेंट का प्रतिनिधित्व करते हैं। जावा विभिन्न ईवेंट क्लासेस प्रदान करता है, हालांकि, केवल वे जो अधिक बार उपयोग किए जाते हैं, उन पर चर्चा की जाएगी।

EventObject कक्षा

यह मूल वर्ग है जिसमें से सभी घटना राज्य वस्तुओं को प्राप्त किया जाएगा। सभी घटनाओं का निर्माण वस्तु के संदर्भ में किया जाता हैsource, जो तार्किक रूप से उस वस्तु के रूप में समझा जाता है जिस पर शुरू में प्रश्न में घटना हुई। इस वर्ग में परिभाषित किया गया हैjava.util पैकेज।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है java.util.EventObject वर्ग -

public class EventObject
   extends Object
      implements Serializable

मैदान

इसके लिए निम्नलिखित क्षेत्र हैं java.util.EventObject वर्ग -

protected Object source - वह वस्तु जिस पर घटना शुरू हुई थी।

क्लास कंस्ट्रक्टर्स

अनु क्रमांक। कंस्ट्रक्टर और विवरण
1

EventObject(Object source)

एक प्रोटोटाइप घटना का निर्माण करता है।

कक्षा के तरीके

अनु क्रमांक। विधि और विवरण
1

Object getSource()

वह वस्तु जिस पर ईवेंट प्रारंभ में हुआ था।

2

String toString()

इस EventObject का एक स्ट्रिंग प्रतिनिधित्व लौटाता है।

तरीके निहित हैं

इस वर्ग को निम्न वर्ग से विधियाँ प्राप्त होती हैं -

  • java.lang.Object

ईवेंट की कक्षाएं

निम्नलिखित आमतौर पर उपयोग किए जाने वाले इवेंट वर्गों की सूची है।

अनु क्रमांक। कक्षा और विवरण
1 AWTEvent

यह सभी SWING ईवेंट के लिए रूट इवेंट क्लास है। यह वर्ग और इसके उपवर्ग मूल को सुपरसीड करते हैंjava.awt.Event कक्षा।

2 ActionEvent

बटन क्लिक होने पर एक्शनइवेंट उत्पन्न होता है या किसी सूची का आइटम डबल-क्लिक किया जाता है।

3 InputEvent

InputEvent वर्ग सभी घटक-स्तरीय इनपुट घटनाओं के लिए रूट इवेंट क्लास है।

4 महत्वपूर्ण घटना

चरित्र में प्रवेश करने पर कुंजी घटना उत्पन्न होती है।

5 MouseEvent

यह घटना इंगित करती है कि एक घटक में एक माउस क्रिया हुई।

6 WindowEvent

इस वर्ग की वस्तु एक खिड़की की स्थिति में परिवर्तन का प्रतिनिधित्व करती है।

7 AdjustmentEvent

इस वर्ग की वस्तु समायोजन योग्य वस्तुओं द्वारा उत्सर्जित समायोजन घटना का प्रतिनिधित्व करती है।

8 ComponentEvent

इस वर्ग की वस्तु एक खिड़की की स्थिति में परिवर्तन का प्रतिनिधित्व करती है।

9 ContainerEvent

इस वर्ग की वस्तु एक खिड़की की स्थिति में परिवर्तन का प्रतिनिधित्व करती है।

10 MouseMotionEvent

इस वर्ग की वस्तु एक खिड़की की स्थिति में परिवर्तन का प्रतिनिधित्व करती है।

1 1 PaintEvent

इस वर्ग की वस्तु एक खिड़की की स्थिति में परिवर्तन का प्रतिनिधित्व करती है।

इवेंट श्रोता घटनाओं को संभालने के लिए जिम्मेदार इंटरफेस का प्रतिनिधित्व करते हैं। जावा विभिन्न ईवेंट श्रोता वर्ग प्रदान करता है, हालांकि, केवल वे जो अधिक बार उपयोग किए जाते हैं, उन पर चर्चा की जाएगी। ईवेंट श्रोता विधि की प्रत्येक विधि में ऑब्जेक्ट के रूप में एक एकल तर्क होता है जो EventObject क्लास का उपवर्ग है। उदाहरण के लिए, माउस ईवेंट श्रोता विधियाँ माउसइवेंट का उदाहरण स्वीकार करेंगी, जहाँ माउसओवेंट इवेंटऑब्जेक्ट से निकलता है।

EventListner इंटरफ़ेस

यह एक मार्कर इंटरफ़ेस है जिसे प्रत्येक श्रोता इंटरफ़ेस को विस्तारित करना है। इस वर्ग में परिभाषित किया गया हैjava.util पैकेज।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है java.util.EventListener इंटरफ़ेस -

public interface EventListener

ईवेंट श्रोता इंटरफेस

निम्नलिखित आमतौर पर इस्तेमाल किए जाने वाले श्रोताओं की सूची है।

अनु क्रमांक। कक्षा और विवरण
1 ActionListener

यह इंटरफ़ेस एक्शन ईवेंट प्राप्त करने के लिए उपयोग किया जाता है।

2 ComponentListener

इस इंटरफ़ेस का उपयोग घटक घटनाओं को प्राप्त करने के लिए किया जाता है।

3 ItemListener

इस इंटरफ़ेस का उपयोग आइटम ईवेंट प्राप्त करने के लिए किया जाता है।

4 KeyListener

यह इंटरफ़ेस प्रमुख घटनाओं को प्राप्त करने के लिए उपयोग किया जाता है।

5 MouseListener

इस इंटरफ़ेस का उपयोग माउस घटनाओं को प्राप्त करने के लिए किया जाता है।

6 WindowListener

यह इंटरफ़ेस विंडो ईवेंट प्राप्त करने के लिए उपयोग किया जाता है।

7 AdjustmentListener

इस इंटरफ़ेस का उपयोग समायोजन घटनाओं को प्राप्त करने के लिए किया जाता है।

8 ContainerListener

इस इंटरफ़ेस का उपयोग कंटेनर ईवेंट प्राप्त करने के लिए किया जाता है।

9 MouseMotionListener

इस इंटरफ़ेस का उपयोग माउस गति घटनाओं को प्राप्त करने के लिए किया जाता है।

10 FocusListener

इस इंटरफ़ेस का उपयोग फ़ोकस इवेंट प्राप्त करने के लिए किया जाता है।

एडाप्टर्स विभिन्न घटनाओं को प्राप्त करने के लिए अमूर्त वर्ग हैं। इन वर्गों में विधियाँ रिक्त हैं। ये कक्षाएं श्रोता वस्तुओं को बनाने के लिए सुविधा के रूप में मौजूद हैं।

एडाप्टरों को स्वाहा करना

निम्नलिखित SWI में GUI की घटनाओं को सुनने के दौरान आमतौर पर उपयोग किए जाने वाले एडेप्टर की सूची है।

अनु क्रमांक। एडाप्टर और विवरण
1 FocusAdapter

फोकस घटनाओं को प्राप्त करने के लिए एक सार एडेप्टर वर्ग।

2 KeyAdapter

प्रमुख घटनाओं को प्राप्त करने के लिए एक सार एडेप्टर वर्ग।

3 MouseAdapter

माउस घटनाओं को प्राप्त करने के लिए एक सार एडेप्टर वर्ग।

4 MouseMotionAdapter

माउस गति घटनाओं को प्राप्त करने के लिए एक सार एडेप्टर वर्ग।

5 WindowAdapter

विंडो ईवेंट प्राप्त करने के लिए एक सार एडेप्टर वर्ग।

लेआउट कंटेनर के भीतर घटकों की व्यवस्था को संदर्भित करता है। दूसरे तरीके से, यह कहा जा सकता है कि लेआउट कंटेनर के भीतर एक विशेष स्थिति में घटकों को रख रहा है। नियंत्रण रखने का कार्य लेआउट प्रबंधक द्वारा स्वचालित रूप से किया जाता है।

लेआउट प्रबंधक

लेआउट प्रबंधक स्वचालित रूप से कंटेनर के भीतर सभी घटकों को तैनात करता है। भले ही आप लेआउट प्रबंधक का उपयोग न करें, घटक अभी भी डिफ़ॉल्ट लेआउट प्रबंधक द्वारा तैनात हैं। नियंत्रण को हाथ से करना संभव है, हालांकि, निम्नलिखित दो कारणों से यह बहुत मुश्किल हो जाता है।

  • कंटेनर के भीतर बड़ी संख्या में नियंत्रण को संभालना बहुत कठिन है।

  • आमतौर पर, एक घटक की चौड़ाई और ऊंचाई की जानकारी तब नहीं दी जाती है जब हमें उन्हें व्यवस्थित करने की आवश्यकता होती है।

जावा नियंत्रण रखने के लिए विभिन्न लेआउट प्रबंधक प्रदान करता है। आकार, आकार और व्यवस्था जैसे गुण एक लेआउट मैनेजर से दूसरे में भिन्न होते हैं। जब एप्लेट या एप्लिकेशन विंडो का आकार बदलता है, तो घटकों का आकार, आकार और व्यवस्था भी प्रतिक्रिया में बदल जाती है, यानी लेआउट प्रबंधक एप्लेटव्यूअर या एप्लिकेशन विंडो के आयामों के अनुकूल होते हैं।

लेआउट प्रबंधक हर कंटेनर ऑब्जेक्ट से संबद्ध है। प्रत्येक लेआउट प्रबंधक उस वर्ग की एक वस्तु है जो लेआउटमैन इंटरफ़ेस को लागू करता है।

लेआउट मैनेजरों की कार्यक्षमता को परिभाषित करने वाले इंटरफेस निम्नलिखित हैं।

अनु क्रमांक। इंटरफ़ेस और विवरण
1 LayoutManager

LayoutManager इंटरफ़ेस उन विधियों की घोषणा करता है जिन्हें कक्षा द्वारा कार्यान्वित करने की आवश्यकता होती है, जिनकी वस्तु लेआउट प्रबंधक के रूप में कार्य करेगी।

2 LayoutManager2

LayoutManager2 LayoutManager का उप-इंटरफ़ेस है। यह इंटरफ़ेस उन वर्गों के लिए है, जो जानते हैं कि लेआउट बाधा वस्तु के आधार पर कंटेनरों को कैसे लेआउट करना है।

AWT लेआउट प्रबंधक कक्षाएं

निम्नलिखित AWT का उपयोग करके GUI डिजाइन करते समय आमतौर पर उपयोग किए जाने वाले नियंत्रणों की सूची है।

अनु क्रमांक। लेआउट प्रबंधक और विवरण
1 BorderLayout

सीमा रेखा पांच क्षेत्रों में फिट होने के लिए घटकों की व्यवस्था करती है: पूर्व, पश्चिम, उत्तर, दक्षिण और केंद्र।

2 CardLayout

CardLayout ऑब्जेक्ट कंटेनर में प्रत्येक घटक को एक कार्ड के रूप में मानता है। एक बार में केवल एक कार्ड दिखाई देता है।

3 FlowLayout

FlowLayout डिफ़ॉल्ट लेआउट है। यह एक दिशात्मक प्रवाह में घटकों को लेआउट करता है।

4 जाली का नक्शा

GridLayout आयताकार ग्रिड के रूप में घटकों का प्रबंधन करता है।

5 GridBagLayout

यह सबसे लचीला लेआउट प्रबंधक वर्ग है। GridBagLayout की वस्तु घटक को लंबवत, क्षैतिज या उनके आधार रेखा के साथ समान आकार के घटकों की आवश्यकता के बिना संरेखित करती है।

6 GroupLayout

GroupLayout पदानुक्रम को एक कंटेनर में रखने के लिए घटकों को समूह में रखता है।

7 SpringLayout

एक स्प्रिंगलायट बाधाओं के एक सेट के अनुसार अपने संबंधित कंटेनर के बच्चों को नियुक्त करता है।

जैसा कि हम जानते हैं कि प्रत्येक शीर्ष-स्तरीय विंडो में एक मेनू बार जुड़ा होता है। इस मेनू बार में अंतिम उपयोगकर्ता के लिए विभिन्न मेनू विकल्प उपलब्ध हैं। इसके अलावा, प्रत्येक विकल्प में विकल्पों की एक सूची होती है, जिसे ड्रॉप-डाउन मेनू कहा जाता है। मेनू और MenuItem नियंत्रण MenuComponent वर्ग के उपवर्ग हैं।

मेनू पदानुक्रम

मेनू नियंत्रण

अनु क्रमांक। कक्षा और विवरण
1 JMenuBar

JMenuBar ऑब्जेक्ट शीर्ष-स्तरीय विंडो के साथ जुड़ा हुआ है।

2 JMenuItem

मेनू में आइटम JMenuItem या उसके किसी उपवर्ग से संबंधित होना चाहिए।

3 JMenu

JMenu ऑब्जेक्ट एक पुल-डाउन मेनू घटक है जो मेनू बार से प्रदर्शित होता है।

4 JCheckboxMenuItem

JCheckboxMenuItem JMenuItem का उपवर्ग है।

5 JRadioButtonMenuItem

JRadioButtonMenuItem JMenuItem का उपवर्ग है।

6 JPopupMenu

JPopupMenu एक घटक के भीतर एक निर्दिष्ट स्थान पर गतिशील रूप से पॉप अप किया जा सकता है।

कंटेनर SWING GUI घटकों का एक अभिन्न अंग हैं। एक कंटेनर एक स्थान प्रदान करता है जहां एक घटक स्थित हो सकता है। AWT में एक कंटेनर अपने आप में एक घटक है और यह अपने आप में एक घटक जोड़ने की क्षमता प्रदान करता है। निम्नलिखित कुछ महत्वपूर्ण बिंदुओं पर विचार किया जाना है।

  • कंटेनर के उप वर्गों को कंटेनर कहा जाता है। उदाहरण के लिए, JPanel, JFrame और JWindow।

  • कंटेनर केवल अपने लिए एक घटक जोड़ सकता है।

  • एक डिफ़ॉल्ट लेआउट प्रत्येक कंटेनर में मौजूद होता है जिसे उपयोग करके ओवरराइड किया जा सकता है setLayout तरीका।

कंटेनरों का टूटना

निम्नलिखित सामान्य रूप से उपयोग किए जाने वाले कंटेनरों की सूची है जबकि SWI का उपयोग करके जीयूआई डिज़ाइन किया गया है।

अनु क्रमांक। कंटेनर और विवरण
1 पैनल

JPanel सबसे सरल कंटेनर है। यह अंतरिक्ष प्रदान करता है जिसमें किसी भी अन्य घटक को रखा जा सकता है, जिसमें अन्य पैनल भी शामिल हैं।

2 ढांचा

जेफ्रेम एक शीर्ष स्तर की खिड़की है जिसमें एक शीर्षक और एक सीमा होती है।

3 खिड़की

JWindow ऑब्जेक्ट एक उच्च-स्तरीय विंडो है जिसमें कोई सीमा नहीं है और कोई मेनूबार नहीं है।