इस भाग में: उपयोगकर्ता इंटरफ़ेस घटक। पिछला हिस्सा यहाँ है ।

IntelliJ IDEA में बड़ी संख्या में कस्टम स्विंग घटक शामिल हैं। अपने प्लगइन्स में इन घटकों का उपयोग करना सुनिश्चित करता है कि वे आईडीई के बाकी यूजर इंटरफेस के साथ सामंजस्य रखते हुए काम करते हैं और अक्सर मानक स्विंग घटकों का उपयोग करने की तुलना में आपको कोड आकार को कम करने की अनुमति देते हैं।
मेनू और टूलबार
मेनू और टूलबार (टूलबार) कार्यों की एक प्रणाली का उपयोग करके बनाए गए हैं (जैसा कि पहले से ही
दूसरे भाग में वर्णित है)।
उपकरण खिड़कियां
टूल विंडो पैनल होते हैं जो मुख्य IntelliJ IDEA विंडो के बाएं, नीचे और दाईं ओर दिखाई देते हैं। प्रत्येक तरफ टूल विंडो के दो समूह होते हैं - प्राथमिक और द्वितीयक, और एक ही समय में केवल एक समूह सक्रिय हो सकता है।
प्रत्येक टूल विंडो में कई टैब हो सकते हैं (जिन्हें एपीआई में "सामग्री" कहा जाता है)। उदाहरण के लिए, टूलविंडो "रन" प्रत्येक सक्रिय लॉन्च कॉन्फ़िगरेशन के लिए एक टैब दिखाता है, और "परिवर्तन" प्रोजेक्ट में प्रयुक्त संस्करण नियंत्रण प्रणाली के आधार पर टैब का एक निश्चित सेट प्रदर्शित करता है।
प्लगइन्स में टूल विंडो का उपयोग करने के लिए दो मुख्य परिदृश्य हैं। पहले परिदृश्य में (उदाहरण के लिए, एंट और कमांडर प्लग-इन में), टूल विंडो बटन हमेशा प्रदर्शित होता है, इसलिए, उपयोगकर्ता किसी भी समय प्लग-इन कार्यक्षमता के साथ सक्रिय और बातचीत कर सकता है। दूसरे परिदृश्य में ("विश्लेषण निर्भरता" क्रिया द्वारा उपयोग किया जाता है), एक टूल विंडो एक विशिष्ट ऑपरेशन के परिणाम दिखाने के लिए बनाई गई है और ऑपरेशन पूरा होने के तुरंत बाद उपयोगकर्ता द्वारा बंद किया जा सकता है।
पहले परिदृश्य में, विंडो एक्सटेंशन बिंदु का उपयोग करके plugin.xml फ़ाइल में पंजीकृत है
<<toolWindow>>
सेटिंग्स। एक्सटेंशन पॉइंट एट्रिब्यूट में वह डेटा होता है जिसका उपयोग टूलविंडो बटन को दिखाने के लिए किया जाता है:
- विशेषता "आईडी" (आवश्यक) - टूलविंडो बटन पर प्रदर्शित पाठ से मेल खाती है;
- "एंकर" (आवश्यक) को संलग्न करें - स्क्रीन के किनारे को सेट करता है जिससे टूल विंडो जुड़ी हुई है ("बाएं", "दाएं" या "नीचे");
- बूलियन विशेषता "माध्यमिक" (वैकल्पिक) - इंगित करता है कि क्या टूल विंडो द्वितीयक समूह से संबंधित होगी;
- "आइकन" (वैकल्पिक) - वह आइकन जो बटन (13 x 13 पिक्सल) पर प्रदर्शित किया जाएगा।
इसके अलावा, आपको फ़ैक्टरी क्लास (विशेषता "फ़ैक्टरीक्लास") में निर्दिष्ट करना चाहिए जो
टूलविंडोफ़ायर इंटरफ़ेस को लागू करता है। जब उपयोगकर्ता टूल विंडो बटन पर क्लिक करता है, तो createToolWindowContent () विधि को बुलाया जाता है और उपयोगकर्ता इंटरफ़ेस को इनिशियलाइज़ करता है। यह प्रक्रिया सुनिश्चित करती है कि अप्रयुक्त टूल विंडो मेमोरी उपयोग या स्टार्टअप समय में किसी भी ओवरहेड का कारण नहीं बनती हैं: यदि उपयोगकर्ता आपके प्लग-इन के टूलविंडो के साथ इंटरैक्ट नहीं करता है, तो कोई कोड डाउनलोड या निष्पादित नहीं किया जाएगा।
यदि सभी प्रकार की परियोजनाओं के लिए टूल विंडो की आवश्यकता नहीं होती है, तो आप वैकल्पिक विशेषता शर्त को निर्दिष्ट कर सकते हैं। क्लास का पूरी तरह से योग्य नाम युक्त होता है जो कंडीशन इंटरफेस को लागू करता है (यह वही क्लास हो सकता है जो फैक्टरी को लागू करता है)। यदि मान () विधि गलत है, तो टूल विंडो प्रदर्शित नहीं होगी। ध्यान दें कि परियोजना को लोड करते समय स्थिति केवल एक बार गणना की जाती है। यदि आप प्रोजेक्ट के साथ काम करते समय टूल विंडो को गतिशील रूप से दिखाना और छिपाना चाहते हैं, तो आपको टूल विंडो को पंजीकृत करने के लिए दूसरी स्क्रिप्ट का उपयोग करने की आवश्यकता है।
कॉन्फ़िगरेशन उदाहरण <extensions defaultExtensionNs="com.intellij"> <toolWindow id="My Sample Tool Window" icon="/myPackage/icon.png" anchor="right" factoryClass="myPackage.MyToolWindowFactory" /> </extensions>
दूसरा परिदृश्य
टूल कोड से
टूलविंडमॉवनेगर .registerToolWindow () विधि के लिए सामान्य कॉल में होता है। इस पद्धति में कई ओवरलोड हैं जिनका उपयोग आपके कार्यों के आधार पर किया जा सकता है। यदि आप एक अधिभार का उपयोग करते हैं जो एक स्विंग घटक को स्वीकार करता है, तो यह टूल विंडो में प्रदर्शित पहला टैब बन जाता है।
कई टूलव्यू की सामग्री को प्रदर्शित करने के लिए अनुक्रमित तक पहुंच की आवश्यकता होती है। इसके आधार पर, अनुक्रमणिका का निर्माण करते समय खिड़कियां बंद कर दी जाती हैं, लेकिन यह तब तक सक्रिय रहेगा जब आप "सच" पास के रूप में रजिस्टरवूलविंडो () फ़ंक्शन में canWorkInDumbMode पैरामीटर के मान के रूप में।
जैसा कि पहले बताया गया है, टूल विंडो में कई टैब हो सकते हैं। किसी विंडो की सामग्री को प्रबंधित करने के लिए, आप
ToolWindow .getContentManager () को कॉल कर सकते हैं। टैब ("सामग्री") जोड़ने के लिए, आपको पहले
ContentManager .getFactory () CreateContent () कॉल करके इसे बनाना होगा, और फिर इसे ContentManager.addContent () का उपयोग करके टूल विंडो में जोड़ें।
आप यह निर्धारित कर सकते हैं कि उपयोगकर्ता को विश्व स्तर पर या व्यक्तिगत रूप से टैब बंद करने की अनुमति है या नहीं। उत्तरार्द्ध registerToolWindow () फ़ंक्शन के canCloseContents पैरामीटर को परिभाषित करके या निर्दिष्ट करके किया जाता है
<canCloseContents="true">
plugin.xml फ़ाइल में। यदि क्लोज़िंग टैब विश्व स्तर पर सक्षम है, तो भी आप कॉल करके इसे विशिष्ट टैब के लिए अक्षम कर सकते हैं
<Content.setCloseable(false)>
।
संवादों
DialogWrapper - IntelliJREA प्लगइन में इस्तेमाल सभी मोडल (और कुछ गैर-मॉडल) संवाद बॉक्स के लिए आधार वर्ग है। यह निम्नलिखित सुविधाएँ प्रदान करता है:
- बटन लेआउट (प्लेटफ़ॉर्म-विशिष्ट क्रम ओके / रद्द करें बटन, मैक ओएस-विशिष्ट सहायता बटन);
- प्रसंग सहायता;
- डायलॉग बॉक्स का आकार याद रखना;
- डेटा सत्यापन (और यदि संवाद बॉक्स में दर्ज किया गया डेटा गलत है, तो एक त्रुटि संदेश प्रदर्शित करना);
- कीबोर्ड शॉर्टकट: डायलॉग बॉक्स बंद करने के लिए Esc, बटन के बीच स्विच करने के लिए बाएं / दाएं और डायलॉग बॉक्स में मौजूद होने पर "हां / नहीं" का जवाब देने के लिए Y / N;
- वैकल्पिक "दोबारा मत पूछें" चेकबॉक्स।
अपने स्वयं के संवाद बॉक्स के लिए DialogWrapper वर्ग का उपयोग करते समय, आपको निम्न कार्य करना चाहिए:
- बेस क्लास के कंस्ट्रक्टर को कॉल करें और उस प्रोजेक्ट को पास करें जिसके भीतर डायलॉग बॉक्स या डायलॉग बॉक्स के लिए पैरेंट घटक प्रदर्शित किया जाएगा;
- डायल बॉक्स क्लास कंस्ट्रक्टर से इनिट () विधि को कॉल करें;
- सेटटाइटल () विधि को डायलॉग बॉक्स के लिए शीर्षक सेट करने के लिए कॉल करें;
- डायलॉग बॉक्स की मुख्य सामग्री के लिए जिम्मेदार घटक को वापस करने के लिए createCenterPanel () विधि को लागू करें;
- वैकल्पिक: getPreferredFocusedComponent () विधि को ओवरराइड करें, जो उस घटक को लौटाता है जो डायलॉग बॉक्स दिखाई देने पर ध्यान में होगा;
- वैकल्पिक: पहचानकर्ता को निर्धारित करने के लिए getDimensionServiceKey () विधि को ओवरराइड करें जो डायलॉग बॉक्स के आकार को बचाने के लिए उपयोग किया जाएगा;
- वैकल्पिक: संवाद बॉक्स से जुड़ी सहायता संदर्भ सेट करने के लिए getHelpId () विधि को ओवरराइड करें।
DialogWrapper वर्ग अक्सर यूआई डिजाइनर रूपों के साथ संयोजन में उपयोग किया जाता है। प्रपत्र और आपके वर्ग को डायलॉगवॉपर तक विस्तारित करने के लिए, प्रपत्र के रूट पैनल को फ़ील्ड में बाँधें और इसे createCenterPanel () विधि से वापस करें।
संवाद बॉक्स प्रदर्शित करने के लिए, शो () विधि को कॉल करें और फिर डायल बॉक्स को बंद करने के तरीके के लिए getExitCode () विधि का उपयोग करें।
संवाद बॉक्स में प्रदर्शित बटनों को कॉन्फ़िगर करने के लिए (यानी, OK / रद्द / सहायता बटन के मानक सेट को बदलें), आप createActions () या createLeftActions () विधियों को ओवरराइड कर सकते हैं। ये दोनों विधियाँ स्विंग एक्शन ऑब्जेक्ट्स की एक सरणी लौटाती हैं। यदि आपके द्वारा जोड़ा गया बटन संवाद बॉक्स बंद करता है, तो आप कार्रवाई के लिए आधार वर्ग के रूप में DialogWrapperExitAction का उपयोग कर सकते हैं।
संवाद बॉक्स में दर्ज किए गए डेटा को सत्यापित करने के लिए, आप doValidate () विधि को ओवरराइड कर सकते हैं। विधि को टाइमर द्वारा स्वचालित रूप से कहा जाएगा। यदि वर्तमान में दर्ज किया गया डेटा वैध है, तो आपको अशक्त लौटने की आवश्यकता है। अन्यथा, एक ValidationInfo ऑब्जेक्ट लौटाएं, जो त्रुटि संदेश और वैकल्पिक रूप से अमान्य डेटा से जुड़ा एक घटक है। यदि आप एक घटक निर्दिष्ट करते हैं, तो उसके बगल में एक त्रुटि आइकन प्रदर्शित किया जाएगा और उपयोगकर्ता द्वारा ओके पर क्लिक करने का प्रयास करने पर यह ध्यान केंद्रित करेगा।
पॉप-अप
IntelliJ IDEA उपयोगकर्ता इंटरफ़ेस पॉप-अप - अर्ध-मोडल विंडो का व्यापक उपयोग करता है, जिसमें स्पष्ट क्लोज बटन नहीं होता है और फोकस खो जाने पर स्वचालित रूप से गायब हो जाता है। अपने प्लगइन में इन नियंत्रणों का उपयोग करना प्लगइन और एकीकृत विकास वातावरण के बाकी हिस्सों के बीच एक एकल उपयोगकर्ता इंटरफ़ेस प्रदान करता है।
पॉप-अप का एक शीर्षक हो सकता है, यदि आवश्यक हो तो उन्हें स्थानांतरित किया जा सकता है और आकार बदलने की अनुमति देता है (आकार का समर्थन है याद रखें), उन्हें नेस्ट किया जा सकता है (किसी आइटम का चयन होने पर अतिरिक्त पॉप-अप दिखाने की अनुमति दी जाती है)।
JBPopupFactory इंटरफ़ेस आपको अपनी विशिष्ट आवश्यकताओं के आधार पर विभिन्न प्रकार के स्विंग घटकों को प्रदर्शित करने के लिए पॉप-अप बनाने की अनुमति देता है। सबसे अधिक इस्तेमाल की जाने वाली विधियाँ हैं:
- createComponentPopupBuilder () एक पॉपअप के अंदर किसी भी स्विंग घटक को दिखाने का सबसे सार्वभौमिक तरीका है।
- createListPopupBuilder () - एक स्विंग JList से एक या अधिक आइटम चुनने के लिए एक पॉपअप बनाता है।
- createConfirmation () - दो विकल्पों के बीच चयन करने और चयनित एक के आधार पर विभिन्न कार्यों को करने के लिए एक पॉप-अप विंडो बनाता है।
- createActionGroupPopup () - एक पॉपअप बनाता है जो क्रियाओं का एक समूह दिखाता है और उपयोगकर्ता द्वारा चयनित एक प्रदर्शन करता है।
एक एक्शन ग्रुप के लिए पॉप-अप सामान्य तीर कुंजियों के अलावा कीबोर्ड का उपयोग करके किसी एक्शन को चुनने के लिए कई तरह के तरीकों का समर्थन करता है। ActionSelectionAid गणना के लिए स्थिरांक में से किसी एक के मान को पारित करके, आप चुन सकते हैं कि क्या इसके सीरियल नंबर के अनुरूप संख्यात्मक कुंजी दबाकर एक कार्रवाई का चयन करना संभव होगा, इसके पाठ (त्वरित खोज) के हिस्से में प्रवेश कर रहा है, या महामारी के प्रतीक को दबा रहा है। तत्वों के एक निश्चित सेट के साथ पॉप-अप के लिए, सीरियल नंबरिंग की विधि चुनने की सिफारिश की जाती है; एक चर और संभावित बड़ी संख्या में तत्वों के साथ पॉप-अप के लिए - एक त्वरित खोज आमतौर पर सबसे अच्छा काम करती है।
यदि आपको एक सूची पॉपअप संवाद बनाने की आवश्यकता है, लेकिन एक सामान्य JList उपयुक्त नहीं है - उदाहरण के लिए, यह समूह में समूह क्रियाओं के लिए अवांछनीय है, तो आप सीधे
ListPopupStep इंटरफ़ेस और JBPopupervactory.createListPopup () विधि के साथ काम कर सकते हैं। आमतौर पर आपको पूरे इंटरफ़ेस को लागू करने की आवश्यकता नहीं होती है, इसके बजाय, आप
बेसलिस्टपॉपस्टेप क्लास से इनहेरिट कर सकते हैं। ओवरराइड करने की मुख्य विधियाँ हैं: getTextFor () (तत्व के लिए प्रदर्शित पाठ) और onChosen () (जब तत्व चुना जाता है) कहा जाता है। ऑनकेशेन () पद्धति से एक नया पॉपअपस्टेप वापस करके, पदानुक्रमित (नेस्टेड) पॉप-अप लागू किया जा सकता है।
एक बार जब आप विंडो बना लेते हैं, तो आपको शो () विधियों में से एक को कॉल करके इसे प्रदर्शित करने की आवश्यकता होती है। आप IntelliJ IDEA को showInBestPositionFor () कॉल करके संदर्भ के आधार पर स्वचालित रूप से एक स्थिति का चयन कर सकते हैं, या showUnderneathOf () और showInCenterOf () जैसे तरीकों के माध्यम से स्पष्ट रूप से एक स्थिति निर्दिष्ट कर सकते हैं। ध्यान दें कि पॉपअप के बंद होने की प्रतीक्षा करने के बजाय शो () विधियां तुरंत नियंत्रण लौटाती हैं। यदि आपको विंडो बंद करते समय कुछ क्रियाएं करने की आवश्यकता होती है, तो आप addListener () पद्धति का उपयोग करके एक श्रोता को इसे बांध सकते हैं; या PopupStep.onChosen () की तरह एक विधि को ओवरराइड करें; या पॉपअप के अंदर एक ईवेंट हैंडलर को संबंधित कंपोनेंट में संलग्न करें।
नोटिस
हाल के IntelliJ IDEA संस्करणों में मार्गदर्शक डिजाइन सिद्धांतों में से एक है त्रुटियों और अन्य स्थितियों के उपयोगकर्ता को सूचित करने के लिए मोडल विंडोज़ के उपयोग को रोकने के लिए जो उसके ध्यान की आवश्यकता हो सकती है। एक प्रतिस्थापन के रूप में, IntelliJ IDEA कई प्रतिरूप अधिसूचना प्रकारों का विकल्प प्रदान करता है।
संवादों
एक मोडल डायलॉग बॉक्स के साथ काम करते समय, ओके बटन पर क्लिक करके दर्ज किए गए डेटा की जाँच करने और एक अन्य मोडल विंडो में अमान्य डेटा के उपयोगकर्ता को सूचित करने के बजाय, यह डायलॉगब्युलिडो। अमान्य () विधि का उपयोग करने की सिफारिश की जाती है, जिसे पहले वर्णित किया गया था।
संपादक युक्तियाँ
संपादक से बुलाए गए कार्यों के लिए (उदाहरण के लिए, रीफैक्टरिंग, नेविगेशन, आदि), उपयोगकर्ता को क्रिया प्रदर्शन की असंभवता के बारे में सूचित करने का सबसे अच्छा तरीका
हिंटमैनगर वर्ग का उपयोग करना है। इसका शोअरप्रिंटहिंट () विधि संपादक के ऊपर एक खिड़की को प्रदर्शित करती है जो उपयोगकर्ता द्वारा संपादक में एक और कार्रवाई शुरू करने पर स्वचालित रूप से छिप जाती है। अन्य HintManager तरीकों का उपयोग संपादक के ऊपर संकेत के रूप में अन्य प्रकार की मॉडल सूचनाओं को प्रदर्शित करने के लिए किया जा सकता है।
उच्च स्तर की सूचनाएं
मॉडल सूचनाएँ प्रदर्शित करने का सबसे आम तरीका
अधिसूचना वर्ग का उपयोग करना है। इसके दो मुख्य लाभ हैं:
- उपयोगकर्ता सेटिंग्स में सूचीबद्ध प्रत्येक प्रकार की सूचनाओं को प्रबंधित कर सकता है | सूचनाएं ”;
- ईवेंट लॉग टूल विंडो में सभी प्रदर्शित सूचनाएं एकत्र की जाती हैं और बाद में देखी जा सकती हैं।
सूचना प्रदर्शित करने के लिए उपयोग की जाने वाली मुख्य विधि Notifications.Bus.notify () है। अधिसूचना पाठ में HTML टैग हो सकते हैं। आप उपयोगकर्ता को अधिसूचना के साथ बातचीत करने की अनुमति दे सकते हैं जिसमें हाइपरलिंक शामिल है और
अधिसूचना वर्ग के निर्माता को NotificationListener का एक उदाहरण पारित कर रहा है।
अधिसूचना निर्माता के GroupDisplayId पैरामीटर अधिसूचना के प्रकार को इंगित करता है; उपयोगकर्ता सेटिंग्स में प्रत्येक अधिसूचना के प्रकार के अनुरूप प्रदर्शन के प्रकार का चयन कर सकता है | सूचनाएं। अपने पसंदीदा प्रकार को इंगित करने के लिए, आपको अधिसूचना प्रदर्शित करने से पहले Notifications.Bus.register () को कॉल करना होगा।
कक्षा और फ़ाइल चयन
फ़ाइल चयन
उपयोगकर्ता को फ़ाइल, निर्देशिका या कई फ़ाइलों का चयन करने की अनुमति देने के लिए, FileChooser .chooseFiles () विधि का उपयोग करें। इस पद्धति में कई अधिभार हैं, जिनमें से एक शून्य लौटता है और एक कॉलबैक फ़ंक्शन प्राप्त करता है जो एक पैरामीटर के रूप में चयनित फ़ाइलों की सूची लेता है। यह एकमात्र अधिभार है जो मैक ओएस एक्स पर मूल संवाद बॉक्स प्रदर्शित करेगा।
FileChooserDescriptor वर्ग आपको नियंत्रित करने की अनुमति देता है कि कौन सी फाइलें चुनी जा सकती हैं। डिज़ाइनर विकल्प यह निर्धारित करते हैं कि क्या फ़ाइलें और / या निर्देशिकाएं चुनी जा सकती हैं, और क्या कई वस्तुओं की अनुमति है। अधिक सटीक नियंत्रण के लिए, आप isFileSelectable () विधि को अधिभारित कर सकते हैं। आप FileChooserDescriptor वर्ग के getIcon (), getName (), और getComment () विधियों को ओवरराइड करके फ़ाइलों के प्रदर्शन को भी कस्टमाइज़ कर सकते हैं। ध्यान दें कि मूल मैक ओएस एक्स फ़ाइल चयन संवाद अधिकांश सेटिंग्स का समर्थन नहीं करता है, इसलिए यदि आप उन पर भरोसा करते हैं, तो आपको चयन करना होगा चयन विधि () विधि अधिभार, जो मानक IntelliJ IDEA संवाद बॉक्स प्रदर्शित करता है।
फ़ाइल का चयन करने के लिए एक बहुत ही सामान्य तरीका एक फ़ाइल चयन संवाद प्रदर्शित करने के लिए एक दीर्घवृत्त ("...") के साथ एक पथ दर्ज करने के लिए एक पाठ बॉक्स का उपयोग करना है। ऐसा नियंत्रण बनाने के लिए,
TextFieldWithBrowseButton घटक का उपयोग करें और फ़ाइल पिकर को कॉन्फ़िगर करने के लिए इसके addBrowseFolderListener () विधि को कॉल करें। एक अतिरिक्त बोनस के रूप में, यह मैन्युअल रूप से पाठ बॉक्स में पथ दर्ज करते समय फ़ाइल नाम को स्वत: पूर्ण करना संभव बना देगा।
फ़ाइलों का चयन करने के लिए एक वैकल्पिक यूआई, जो आदर्श है जब आपको किसी फ़ाइल को नाम से खोज करने की आवश्यकता होती है,
ट्रीफ़िलेचोसेरफैक्टरी वर्ग के माध्यम से उपलब्ध है। इस API द्वारा उपयोग किए गए संवाद बॉक्स में दो टैब हैं: एक परियोजना की संरचना दिखाता है, दूसरा गोटो फ़ाइल में उपयोग की गई फ़ाइलों के समान सूची दिखाता है। डायलॉग बॉक्स प्रदर्शित करने के लिए, createFileChooser () और फिर getSelectedFile () से कस्टम चयन प्राप्त करने के लिए कॉल की गई वस्तु पर showDialog () कॉल करें।
कक्षा और पैकेज चयन
यदि आप उपयोगकर्ता को Java वर्ग चुनने का विकल्प देना चाहते हैं, तो आप
TreeClassChooserFactory वर्ग का उपयोग कर सकते हैं। इसकी विभिन्न विधियाँ आपको किसी विशेष वर्ग या इंटरफ़ेस कार्यान्वयन के वंशजों के चयन को सीमित करने के साथ-साथ सूची में आंतरिक कक्षाओं को शामिल करने या बाहर करने के लिए एक खोज गुंजाइश निर्दिष्ट करने की अनुमति देती हैं।
एक जावा पैकेज का चयन करने के लिए, आप
PackageChooserDialog वर्ग का उपयोग कर सकते हैं।
संपादक घटक
स्विंग JTextArea की तुलना में, IntelliJ IDEA संपादक घटक के कई फायदे हैं - वाक्य रचना हाइलाइटिंग, कोड पूरा करना, कोड तह, और बहुत कुछ। IntelliJ IDEA में संपादकों को आमतौर पर संपादक टैब के रूप में प्रदर्शित किया जाता है, लेकिन उन्हें संवाद बॉक्स या टूल विंडो में एम्बेड किया जा सकता है। यह
EditorTextField घटक की अनुमति देता है।
EditorTextField बनाते समय, आप निम्नलिखित विशेषताओं को निर्दिष्ट कर सकते हैं:
- फ़ाइल का प्रकार जो फ़ील्ड में पाठ को पार्स करता है;
- क्या पाठ क्षेत्र केवल-पढ़ने के लिए होगा;
- चाहे टेक्स्ट फील्ड सिंगल-लाइन हो या मल्टी-लाइन।
EditorTextField के लिए एक सामान्य उपयोग मामला जावा वर्ग या पैकेज के नाम को संपादित करने के लिए है। इसे निम्नलिखित चरणों का उपयोग करके प्राप्त किया जा सकता है:
- JavaCodeFragmentFactory .getInstance () का उपयोग करें। CreateReferenceCodeFragment () एक वर्ग या पैकेज के नाम का प्रतिनिधित्व करने वाले कोड का एक टुकड़ा बनाने के लिए;
- कोड टुकड़ा के अनुरूप दस्तावेज़ प्राप्त करने के लिए PsiDocumentManager .getInstance ()। GetDocument () को कॉल करें;
- प्राप्त दस्तावेज़ को EditorTextField कंस्ट्रक्टर या उसके सेटडैक्मेंट () विधि से पास करें।
सूची और पेड़
जेबीएल एंड ट्री
जब भी आप JList के मानक स्विंग घटक का उपयोग करने की योजना बनाते हैं, तो JBL के विकल्प का उपयोग करने पर विचार करें, जो निम्नलिखित अतिरिक्त सुविधाओं का समर्थन करता है:
- एक टूलटिप का प्रतिपादन करना जिसमें किसी तत्व का पूरा पाठ होता है यदि वह क्षेत्र की चौड़ाई में फिट नहीं होता है;
- सूची के बीच में एक ग्रे टेक्स्ट संदेश खींचना जब इसमें तत्व नहीं होते हैं (getEmptyText ()। SetText ()) को कॉल करके पाठ को कॉन्फ़िगर किया जा सकता है;
- सूची के ऊपरी दाएं कोने में "व्यस्त" आइकन खींचना जब एक पृष्ठभूमि ऑपरेशन किया जाता है (सेटपेंटब्युसी () कॉल करके सक्षम)।
जेबीएल की तरह, एक वर्ग com.intellij.ui.treeStructure.Tree है जो मानक जेटी क्लास के लिए एक प्रतिस्थापन प्रदान करता है। जेबीएल सुविधाओं के अलावा, यह ड्रैग एंड ड्रॉप के लिए मैक-स्टाइल रेंडरिंग और ऑटो-स्क्रॉल का समर्थन करता है।
ColoredListCellRenderer और ColoredTreeCellRenderer
जब आपको कॉम्बो बॉक्स या ट्री में आइटमों की प्रस्तुति को अनुकूलित करने की आवश्यकता होती है, तो यह सिफारिश की जाती है कि आप रेंडर सेल के साधन के रूप में
ColoredListCellRenderer या
ColoredTreeCellRenderer कक्षाओं का उपयोग करें। ये कक्षाएं आपको विभिन्न विशेषताओं के साथ पाठ के कई टुकड़ों से विचार एकत्र करने की अनुमति देती हैं (एपेंड () को कॉल करके) और तत्व के लिए एक अतिरिक्त आइकन लागू करें (सेटआईकॉन () कॉल करके)। विज़ुअलाइज़ेशन सिस्टम चयनित तत्वों और कई अन्य प्लेटफ़ॉर्म-विशिष्ट रेंडरिंग विवरणों के लिए सही टेक्स्ट रंग सेट करने का ध्यान रखता है।
ListSpeedSearch और TreeSpeedSearch
किसी सूची या पेड़ में कीबोर्ड का उपयोग करके वस्तुओं के चयन की सुविधा के लिए, आप उन्हें एक त्वरित खोज हैंडलर लागू कर सकते हैं। यह एक साधारण कॉल के साथ किया जा सकता है।
<new ListSpeedSeach(list)>
या
<new TreeSpeedSearch(tree)>
। यदि आपको किसी आइटम को खोजने के लिए उपयोग किए जाने वाले पाठ को अनुकूलित करने की आवश्यकता है, तो आप getElementText () विधि को ओवरराइड कर सकते हैं। इसके अलावा, आप तत्वों को स्ट्रिंग्स में परिवर्तित करने के लिए एक फ़ंक्शन पास कर सकते हैं (जैसा कि ListTeedSearch constructor में elementTextDelegate या TreeSpeedSearch constructor में toString) विधि के रूप में।
ToolbarDecorator
एक प्लगइन को विकसित करते समय एक बहुत ही सामान्य कार्य एक सूची या पेड़ प्रदर्शित करना है जहां उपयोगकर्ता आइटम जोड़, हटा, संपादित या पुन: व्यवस्थित कर सकता है। यह कार्य
टूलबारडेक्टर वर्ग द्वारा बहुत सुविधाजनक है। इस वर्ग में एक टूलबार होता है जिसमें आइटमों से जुड़ी क्रियाएं होती हैं और स्वचालित रूप से सूचियों में आइटम को पुन: क्रमबद्ध करने के लिए ड्रैग एंड ड्रॉप की अनुमति देता है यदि यह अंतर्निहित सूची मॉडल का समर्थन करता है। टूलबार की स्थिति (सूची के ऊपर या नीचे) उस प्लेटफॉर्म पर निर्भर करती है जिस पर IntelliJ IDEA चल रहा है।
टूलबार डेकोरेटर का उपयोग करने के लिए:
- यदि आपको किसी सूची में आइटम हटाने और पुन: व्यवस्थित करने के लिए समर्थन की आवश्यकता है, तो सुनिश्चित करें कि आपका सूची मॉडल EditableModel इंटरफ़ेस लागू करता है। CollectionListModel एक सुविधाजनक वर्ग है जो इस इंटरफ़ेस को लागू करता है।
- डेकोरेटर को इंस्टेंट करने के लिए टूलबारडेकटोरेटर.क्रिएटडेक्टर को कॉल करें।
- यदि आपको तत्वों को जोड़ने और / या हटाने के लिए समर्थन की आवश्यकता है, तो setAddAction () और / या setRemoveAction () को कॉल करें।
- यदि आपको मानक लोगों के अतिरिक्त अन्य बटनों की आवश्यकता है, तो addExtraAction () या setActionGroup () को कॉल करें।
- CreatePanel () को कॉल करें और अपने पैनल में दिए गए घटक को जोड़ें।
अन्य स्विंग घटक
संदेशों
संदेश वर्ग एक सरल संदेश, एक इनपुट संवाद (पाठ क्षेत्र के साथ मोडल संवाद) और एक चयन संवाद (मोडल सूची संवाद) प्रदर्शित करने का एक तरीका प्रदान करता है। विभिन्न वर्ग विधियों के कार्य उनके नाम से स्पष्ट होने चाहिए। मैक ओएस एक्स पर लॉन्च होने पर, संदेश बॉक्स एक देशी इंटरफ़ेस का उपयोग करते हैं।ShowCheckboxMessageDialog () फ़ंक्शन "इसे फिर से न दिखाएं" चेक बॉक्स को लागू करने का एक आसान तरीका प्रदान करता है।यह अनुशंसा की जाती है कि आप जब भी उपयुक्त हों, आप मोडल संदेश बॉक्स के बजाय गैर-मोडल सूचनाओं का उपयोग करें। पिछले खंडों में से एक में अधिसूचनाओं की समीक्षा की गई है।JBSplitter
JBSplitter class , JSplitPane वर्ग के लिए एक प्रतिस्थापन है। कुछ अन्य सुधारे हुए जेटब्रेन्स स्विंग घटकों के विपरीत, यह एक समान प्रतिस्थापन नहीं है, जैसा कि इसका एक अलग API है। हालांकि, उपयोगकर्ता इंटरफ़ेस में एकरूपता प्राप्त करने के लिए, मानक JSplitPane के बजाय JBSplitter का उपयोग करने की अनुशंसा की जाती है।विभाजक में घटकों को जोड़ने के लिए, setFirstComponent () और setSecondComponent () विधियों को कॉल करें।JBSplitter स्वत: पहलू अनुपात भंडारण का समर्थन करता है। इसे सक्षम करने के लिए, setSplitterProportionKey () विधि को कॉल करें और उस पहचानकर्ता को पास करें जिसके तहत अनुपात संग्रहीत किया जाएगा।JBTabs
जेबीटैब्स वर्ग संपादक और कुछ अन्य घटकों में उपयोग किए जाने वाले जेटब्राइन्स का एक टैब कार्यान्वयन है। यह मानक स्विंग टैब की तुलना में काफी अलग दिखता है और महसूस करता है और मैक ओएस एक्स प्लेटफॉर्म पर अधिक विदेशी दिखता है, इसलिए हम आपको छोड़ देते हैं कि आपके प्लगइन के लिए कौन सा टैब कार्यान्वयन अधिक उपयुक्त होगा।जारी रखने के लिए ...
चक्र के सभी लेख: 1 , 2 , 3 , 4 , 5 , 6 , 7 ।