Java Frame: Event Handling Mechanism के तीन तरीकों के बारे में जानने के बाद अब हम पहले जावा के Window Basics को समझेंगे। जावा के AWT में विभिन्न प्रकार के Window Create करने से सम्बंधित Classes Define की गई हैं। हम किसी GUI Application में जितने भी GUI Components देखते हैं, उन सभी Components को हम Window कह सकते हैं।
Panel Class से दो सबसे ज्यादा Use किए जाने वाले Window जिसे हम Applet व Frame कहते हैं, Use किया जाता है। ये दोनों Classes Standard Window Create करने के लिए Use की जाती हैं। इन दोनों Classes से हमें जितनी Functionalities होती हैं, उनमें से ज्यादातर Functionalities इनकी Super Classes से Derived होती हैं।
Container Class
ये Class Component Class की Sub Class है, जिसमें कुछ Additional Methods होते हैं, जो अन्य Component Objects को Container में Nest करने की सुविधा प्रदान करते हैं। क्योंकि विभिन्न प्रकार के GUI Components की Base Class Container Class होती है, इसलिए हम विभिन्न प्रकार के GUI Components को Container Object में Store कर सकते हैं। एक Container Object में स्थित विभिन्न प्रकार के GUI Objects के Layout को Set करने की सारी जिम्मेदारी Container की होती है। विभिन्न प्रकार के GUI Components को Container में Layout या Position करने के लिए एक Container Object विभिन्न प्रकार के Layout Objects का प्रयोग करता है।
Panel Class
Panel Class Container Class की एक Sub Class है। ये एक ऐसा Component होता है, जो स्वयं एक Visual Component नहीं होता है और इसमें कोई नया Method नहीं होता है, बल्कि ये केवल Container Class को ही Implement करता है। Panel Class के Object का प्रयोग हम सामान्यतया Container पर स्थित विभिन्न GUI Components के Layout को Set करने के लिए करते हैं। Panel Class Applet Class की Super Class होती है।
Panel Class एक ऐसे Window को Represent करता है, जिसमें Title Bar, Menu Bar व Border नहीं होती है। चूंकि इस Window की कोई Border नहीं होती है और इसमें Title Bar व Menu Bar भी नहीं होता है, इसीलिए ये Window Screen पर दिखाई नहीं देता है। जब हम किसी Applet को Appletviewer का प्रयोग करके Run करते हैं, तब हमारा Applet Program Appletviewer के Title Bar व Border को Use करता है।
Panel Object में किसी भी अन्य GUI Component को Add करने के लिए हमें add() Method को Use करना होता है। ये Method इस Panel Class में Container Class से Inherit होता है। एक बार किसी GUI Component को Panel में Add कर लेने के बाद उस Component को Panel में Manually Position करने या Resize करने के लिए हम Component Class के setLocation(), setSize() या setBounds() Method को Use कर सकते हैं।
Window Class
Window Class एक Top-Level Window Create करता है। एक Top-Level Window किसी भी Container Object में Store नहीं हो सकता है, बल्कि ऐसा Object Directly Desktop पर Place होता है। सामान्यतया हम Window Class का Object Create नहीं करते हैं, बल्कि हम Frame Class का Object Create करते हैं।
Frame Class
एक “Window” में जो भी विशेषताएं होती हैं, उन विशेषताओं को Frame Class में Encapsulate किया गया है। ये Window Class की एक Sub Class होता है और इसमें एक Title Bar, एक Menu Bar, एक Border व Resizing Corner होते हैं। यदि हम किसी Applet Window के अन्दर कोई Frame Window Create करते हैं, तो इस Frame Window के Status Bar में “Java Applet Window” Message Display होता है। ये Message User को बताता है कि जो Window Display हो रहा है, वह Window एक Applet द्वारा Start हुआ है ना कि Computer पर Run होने वाले किसी Software द्वारा। जब एक Frame Window को किसी Program द्वारा Create किया जाता है, ना कि किसी Applet द्वारा] तो वह Frame Window एक Normal Window होता है।
Canvas Class
हालांकि Canvas Class Applet व Frame Window की Hierarchy का हिस्सा नहीं है, फिर भी ये एक अन्य प्रकार का Window है, जो कि हमारे लिए काफी उपयोगी साबित होता है। Canvas Class में एक ऐसा Blank Window Encapsulate होता है, जिस पर हम Drawing कर सकते हैं।
Creating Java Frame Windows
Frame Window एक ऐसा Window होता है, जो Stand-Alone Application Programs बनाने के लिए Use किया जाता है। हालांकि हम इसका प्रयोग Applet Window में कर सकते हैं। Applet Window के बाद यदि हम सबसे ज्यादा किसी Window को Use करते हैं, तो वह Frame Window ही होता है।
हम सामान्यतया इन Windows का प्रयोग किसी Applet के Child Window को Create करने के लिए करते हैं, या फिर किसी Application के Main Window या Child Window को Create करने के लिए करते हैं। जब हम Frame Window Create करते हैं, तब हमें Standard Style का Window प्राप्त होता है। Frame Class में दो Constructors होते हैं, जिनके Syntax निम्नानुसार हैं:
Frame()
Frame(String title)
पहला Constructor एक ऐसा Window Create करता है, जिसके Title Bar पर कोई Title नहीं होता है। जबकि दूसरे Constructor द्वारा हम Create होने वाले Window को एक “Title” प्रदान कर सकते हैं।
ध्यान दें कि हम किसी Frame के Constructor में उस Frame Window की Size या Dimension को Specify नहीं कर सकते हैं, बल्कि Frame Window की Size तब तय कर सकते हैं, जब Window Create हो जाता है। किसी Frame Window के साथ हम विभिन्न प्रकार के Methods को Use कर सकते हैं। किसी Frame Window के साथ सबसे ज्यादा Use किए जाने वाले कुछ Methods को हम निम्नानुसार Describe कर सकते हैं:
setSize() Method – Specifying Window’s Dimension
setSize() Method का Window के Dimension या Height व Width को तय करने के लिए किया जाता है। इस Method का Signature निम्नानुसार होता है:
void setSize(int newWidth, int newHeight)
void setSize(Dimension newSize)
पहले Method में हमें Create होने वाले Window की नई Size को Specify करना होता है। यदि हम चाहें तो Height व Width के Dimension को एक Dimension Object के रूप में भी Specify कर सकते हैं और Window के नए Dimension को इस Method में Argument के रूप में Pass कर सकते हैं। Dimensions को Pixels की संख्याओं के रूप में Specify किया जाता है। Window की Current Size या Dimension प्राप्त करने के लिए हम getSize() Method को Use कर सकते हैं। इस Method का Signature निम्नानुसार होता है:
Dimension getSize()
ये Method Window या किसी भी अन्य GUI Component की Current Size को Height व Width के एक Dimension Object के रूप में Return करता है।
setVisible() Method – Show / Hide Window or GUI Component
किसी Frame Window को Create करने के बाद उसे Screen पर Display करने के लिए हमें इस Method को Use करना होता है। जब तक हम इस Method को Call नहीं करते हैं, हमारा Frame Window Invisible ही रहता है। इस Method का Signature निम्नानुसार होता है:
void setVisible(boolean visibleFlag)
इस Method में यदि visibleFlag का मान true होता है, तो Component Visible होता है, अन्यथा Component Hidden रहता है।
setTitle() Method – Setting Window’s Title
किसी Frame Window के Title को Change करने के लिए हम setTitle() Method का प्रयोग कर सकते हैं। इस Method का Signature निम्नानुसार होता है:
void setTitle(String newTitle)
newTitle वह String है, जिसे हम Frame के नए Title के रूप में Define करना चाहते हैं।
Closing a Frame Window
जब हम किसी Frame Window को Use कर रहे होते हैं और उस Frame Window को Close करना चाहते हैं, तो हमें उस Frame Window को Screen से Remove करना पडता है। किसी Frame Window को Screen से Remove करने के लिए हम setVisible(false) Method को Call करते हैं। किसी Window को Close करने के लिए हमें windowClosing() Method को Implement करना होता है, जिसे WindowListener Interface में Define किया गया है। किसी Frame Window को Close करने के लिए इस method को हमने हमारे पिछले उदाहरण में Implement किया है।
हालांकि हम Frame Class का Object Create करके एक Frame Window Create कर सकते हैं, लेकिन इस प्रकार के Window का हम कोई विशेष उपयोग नहीं कर सकते हैं। उदाहरण के लिए इस प्रकार के Frame Window में Generate होने वाले Events को Receive व Process नहीं किया जा सकता है, ना ही इस पर आसानी से किसी Output को Place किया जा सकता है।
सामान्यतया हम किसी Frame Window को Create करने के लिए Frame Class को Extend करते हैं। Frame Class की Sub Class Create करने पर हम Frame Class के Methods को Override कर सकते हैं और Event Handling कर सकते हैं, जिससे हमें Create होने वाले Frame Window पर अधिक Control प्राप्त होता है।
किसी Applet Window में किसी Frame Window को Create करना काफी सरल काम होता है। सबसे पहले हमें Frame Class को Inherit करना होता है। उसके बाद हम Applet के किसी भी Standard Method जैसे कि init(), start(), paint(), stop() आदि को Override कर सकते हैं। अन्त में WindowListener Interface को Derived Frame Class में Implement करना होता है और windowClosing() Method को Override करके उसमें setVisible(true) Method को Call करके Window को Screen से Remove करना होता है।
एक बार Frame Class की Sub Class Create करने के बाद हम उस Sub Class का एक Object Create कर सकते हैं। जब हम ऐसा करते हैं, तब एक Frame Window Create होता है, लेकिन ये Window Memory में Create होता है, इसलिए Object Create करते ही ये Frame Window हमें दिखाई नहीं देता है। Frame Window को Screen पर Visible बनाने के लिए हमें setVisible() Method को Call करना जरूरी होता है। जब हम setVisible() Method को Call करके Frame Window को Display करते हैं, तब Frame Window अपनी Default Size में Display होता है। Display होने वाले Frame Window को Resize करने के लिए हम setSize() Method को Use कर सकते हैं।
निम्न Applet Program में हमने Frame Class को Inherit किया है। फिर Applet के init() Method में इस Frame Window का एक Instance Create किया है। Frame Window Create करने के लिए Frame Class का Constructor Call होता है, जो कि एक Standard Frame Window Create करता है, जिसका Title इस Constructor में Argument के रूप में Pass किया गया है। इस Applet Program में हमने Applet के start() व stop() Method को Child Frame Window को Show व Hide करने के लिए Use किया है। जब हम Applet को Terminate करते हैं, तब Frame Window भी Automatically Memory से Remove हो जाता है।
// File Name : FrameInApplet.java import java.awt.*; import java.awt.event.*; import java.applet.*; class MyWindowAdapter extends WindowAdapter{ MyFrame source; public MyWindowAdapter(MyFrame frameWindow) { this.source = frameWindow; } public void windowClosing(WindowEvent wndEvnt){ source.setVisible(false); } } class MyFrame extends Frame{ MyFrame(String title){ super(title); MyWindowAdapter adapter = new MyWindowAdapter(this); addWindowListener(adapter); } public void paint(Graphics g){ g.drawString("This Text is in Frame Window", 10, 35); } } public class FrameInApplet extends Applet{ Frame myFrameWindow; public void init(){ myFrameWindow = new MyFrame("My Frame Window"); myFrameWindow.setSize(250,150); myFrameWindow.setVisible(true); setSize(300, 200); } public void start(){ myFrameWindow.setVisible(true); } public void stop(){ myFrameWindow.setVisible(false); } public void paint(Graphics g){ g.drawString("This Text is in Applet Window", 10, 40); } }
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Java Programming Language in Hindi | Page: 682 | Format: PDF