जावा GUI रूपरेखा। क्या चुनना है? स्विंग, SWT, AWT, स्विंगिंग, JGoodies, JavaFX, Apache Pivot? [बन्द है]


228

जावा के लिए वहां बहुत सी रूपरेखाएं हैं, लेकिन आज की पसंद के ढांचे के रूप में क्या पहचाना जाता है?

निम्नलिखित विभिन्न रूपरेखाओं के बारे में मेरी समझ है, अगर गलत है तो कृपया मुझे सही करें। यह सवालों का एक बहुत ही परिभाषित सेट है, लेकिन मैं अभी भी समृद्ध गिनी अनुप्रयोगों को बनाने के बारे में सोचने वाले किसी भी व्यक्ति के लिए अपना मूल्यवान समझता हूं।


AWT

क्या स्विंग की बहुत नींव है, यह अच्छा प्रदर्शन करता है लेकिन उन्नत घटकों की कमी है। यदि आप समृद्ध एप्लिकेशन बनाने का इरादा रखते हैं, तो AWT शायद जाने का रास्ता नहीं है। हालांकि छोटे गिनी अनुप्रयोगों के लिए जो समृद्ध उपयोगकर्ता इंटरफेस की आवश्यकता नहीं है। यह पूरी तरह से सूट हो सकता है क्योंकि यह एक कोशिश की और साबित रूपरेखा है।


झूला

AWT के आधार पर जैसा कि पहले कहा गया है। अपनी शैशवावस्था में इसे धीमा और छोटा माना जाता था और आईबीएम को ग्रहण के लिए SWT बनाने का कारण बना। हालांकि जावा 5 (या 6?) के साथ स्विंग नए अनुप्रयोगों के निर्माण के लिए पसंद का ढांचा बन गया। स्विंग में बहुत सारे समृद्ध घटक हैं लेकिन अभी भी कुछ क्षेत्रों में कमी है। एक उदाहरण यह है कि एक पूर्ण विशेषताओं वाला ट्रीटेबल घटक नहीं है जो सॉर्टिंग और फ़िल्टरिंग / खोज कर सकता है।


SWT

एक्लिप्स के लिए आईबीएम द्वारा बनाया गया, उन्हें लगता है कि स्विंग उस समय ग्रहण के लिए अनुकूल नहीं था। अपने आप में काफी निम्न-स्तर है, और यह जेएनआई के माध्यम से मंच के मूल विजेट का उपयोग करता है। यह स्विंग और एडब्ल्यूटी से संबंधित नहीं है। उनका एपीआई हालांकि कुछ हद तक क्लूनी है और सहज नहीं है। उनके पास ट्रीटेबल जैसे कुछ उन्नत घटक हैं। (लेकिन मुझे नहीं लगता कि वे बॉक्स से छंटाई और छानने का समर्थन करते हैं)। SWT कुछ देशी बाइंडिंग (JNI के माध्यम से?) का उपयोग करता है और इंटरनेट पर शेख़ी यह है कि इस रूपरेखा का उपयोग आज की परियोजनाओं में नहीं किया जाना चाहिए। (क्यों नहीं?)


SwingX

स्विंग के आधार पर और यह मिशन स्विंग के लिए समृद्ध घटक बनाना है। अभी भी विकास के अधीन है। (हालांकि बहुत सक्रिय नहीं है।) घटकों का एक बहुत अच्छा सेट है, उदाहरण के लिए ट्रीटेबल। लेकिन जहाँ तक मुझे पता है, ट्रीटेबल फ़िल्टरिंग और सॉर्टिंग का समर्थन नहीं करता है। हालाँकि यह हाइलाइटिंग के साथ खोज का समर्थन करता है।

ध्यान दें कि स्विंगिंग घटक (AFAIU) है जो मौजूदा स्विंग घटकों के विस्तार या रचनाएं हैं


JGoodies

एक ढांचा जिसके बारे में मुझे कुछ नहीं पता ... यह ताकत और कमजोरियां क्या हैं? क्या बाकी के अलावा Jgoodies सेट?

JGoodies OTOH PLAFs और लेआउट के बारे में है।


JavaFX

जावा / ओरेकल का नवीनतम फ्लैगशिप। समृद्ध डेस्कटॉप या वेब अनुप्रयोगों को विकसित करने में वास्तविक मानक होने का वादा।


अपाचे धुरी

यह जावा 2 डी का उपयोग करके यूआई प्रदान करता है, इस प्रकार स्विंग और एडब्ल्यूटी की (आईएमओ, फूला हुआ) प्रभाव को कम करता है। (@ ऑगस्टस थू)

यह मुख्य ध्यान RIA (रिच इंटरनेट एप्लिकेशन) पर लगता है, लेकिन ऐसा लगता है कि इसे डेस्कटॉप एप्लिकेशन पर भी लागू किया जा सकता है। और एक व्यक्तिगत टिप्पणी के रूप में, बहुत दिलचस्प लग रहा है! मुझे विशेष रूप से पसंद है कि यह एक अपाचे परियोजना है।

https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html


क्यूटी जंबी

देशी qt लाइब्रेरी के लिए एक जावा आवरण जो c / c ++ में लिखा गया है। बहुत शक्तिशाली, व्यापक रूप से इस्तेमाल किया और स्वीकार किया जाता है। बहुत सारे GUI घटक हैं और API का उपयोग करना आसान है।

http://qt-jambi.org/


तो, जो कुछ पूछ रहा है उसे संक्षेप में प्रस्तुत करने का प्रयास करें:

कहो कि मैं आज जावा में एक डेस्कटॉप एप्लिकेशन बनाना चाहता था जिसमें बहुत सारे उन्नत घटक शामिल हैं, मुझे क्या चुनना चाहिए? और क्यों?

इनमें से किस ढांचे को पदावनत के रूप में मान्यता दी जानी चाहिए और जिसे दूर के भविष्य के ढांचे के रूप में मान्यता दी जानी चाहिए?

आज डी-फैक्टो-स्टैण्डर्ड फ्रेमवर्क क्या है और java gui एप्लीकेशन बनाने के लिए आप कौन से टूल का उपयोग करते हैं?


मुझे यह पूछने पर पछतावा हो सकता है, लेकिन बीमार इसे वैसे भी आजमा सकते हैं:

सी # / नेट के लिए आसान घटकों का उपयोग करने का एक बहुत अच्छा सेट है जो हर दिशा में संभव हो सकता है। और कुछ हद तक विभिन्न जावा फ्रेमवर्क की जांच के बाद मैं जावा के बारे में ऐसा नहीं कह सकता। ऐसा क्यों है? जावा (जो दुनिया में सबसे अधिक उपयोग की जाने वाली प्रोग्रामिंग भाषा है) में जीयूआई घटकों का एक ही सेट क्यों नहीं है?

क्या यह सिर्फ इतना है कि जावा ने अपने गुई घटकों को बहुत निचले स्तर पर आधारित कर दिया है, और इन सभी उन्नत घटकों को लिखना संभव है जो कि तलाश कर रहे हैं, लेकिन आपको बहुत कुछ करना होगा यदि सभी स्वयं काम नहीं करते हैं?


मुझे नहीं पता था कि SWT "AWT और स्विंग के संयोजन पर आधारित था"। क्या वास्तव में मामला है? मैंने सोचा कि यह शुद्ध जेएनआई है जो ओएस की खिड़की प्रणाली को लागू करने के लिए ...
रिच

@ रीच ओह, यह उत्तर टिप्पणियों में से एक में कहा गया था। मुझे लगा कि वे जानते हैं कि वे किस बारे में बात कर रहे थे।
netbrain

4
मुझे लगता है कि आप "यूआई टूलकिट" और "जीयूआई फ्रेमवर्क" को भ्रमित करते हैं। AWT, स्विंग और SWT UI टूलकिट हैं, लेकिन मैं निश्चित रूप से उन्हें "फ्रेमवर्क" नहीं कहूंगा। फ्रेमवर्क किसी दिए गए UI टूलकिट पर आधारित होते हैं और आपके एप्लिकेशन को बनाने के लिए ग्लू प्रदान करते हैं। सबसे पहले, आपको यूआई टूलकिट चुनना चाहिए और फिर एक फ्रेमवर्क चुनना चाहिए जो उस टूलकिट पर काम करता है। एफडब्ल्यूआईडब्ल्यू, मैं अपने घर-निर्मित हिम्मत-जीयूआई ढांचे के साथ स्विंग
चुनूंगा

1
यह लगभग हमेशा स्विंग होता है SWT (मेरे लिए कम से कम), छोटी तुलना के लिए आप जांच सकते हैं कि मुख्य चीजें क्या हैं जो एक अनुभवी जावा SWT प्रोग्रामर को स्विंग करने के लिए आगे बढ़ना चाहिए? ..
जादूगर

2
JavaFX SDK का पूर्वावलोकन का हिस्सा नहीं है और यह उत्पादन उपयोग के लिए उपलब्ध है। कृपया इस पोस्ट को अपडेट करें।

जवाबों:


79

निर्णय वृक्ष:

  1. Qt और SWT जैसे फ्रेमवर्क को मूल DLL की आवश्यकता होती है। तो आपको खुद से पूछना होगा: क्या सभी आवश्यक प्लेटफ़ॉर्म समर्थित हैं? क्या आप मूल DLL को अपने ऐप के साथ पैकेज कर सकते हैं?

    यहां देखें, SWT के लिए यह कैसे करना है

    यदि आपके पास यहाँ कोई विकल्प है, तो आपको SWT पर SWT पसंद करना चाहिए। क्यूटी को यूआई और डेस्कटॉप को समझने वाले लोगों द्वारा विकसित किया गया है, जबकि ग्रहण को तेजी से बनाने के लिए एसडब्ल्यूटी को आवश्यक रूप से विकसित किया गया है। यह UI फ्रेमवर्क की तुलना में जावा 1.4 के लिए अधिक प्रदर्शन पैच है। JFace के बिना, आप कई प्रमुख UI घटकों या UI घटकों की बहुत महत्वपूर्ण विशेषताओं (जैसे तालिकाओं पर फ़िल्टर करना) को याद कर रहे हैं।

    यदि SWT को एक ऐसी सुविधा याद आ रही है जिसकी आपको आवश्यकता है, तो फ्रेमवर्क कुछ हद तक शत्रुतापूर्ण है। उदाहरण के लिए, आप इसमें किसी भी वर्ग का विस्तार नहीं कर सकते हैं (कक्षाएं अंतिम नहीं हैं, वे अपवाद तब फेंकते हैं जब पैकेज this.getClass()नहीं है org.eclipse.swtऔर आप उस पैकेज में नई कक्षाएं नहीं जोड़ सकते क्योंकि यह हस्ताक्षरित है)।

  2. यदि आपको एक देशी, शुद्ध जावा समाधान की आवश्यकता है, जो आपको बाकी के साथ छोड़ देता है। आइए AWT, स्विंग, SwingX - द स्विंग तरीके से शुरू करें।

    AWT पुराना है। स्विंग पुराना है (शायद पिछले 10 सालों से स्विंग पर इतना काम नहीं हुआ है)। आप तर्क दे सकते हैं कि स्विंग की शुरुआत अच्छी थी, लेकिन हम सभी जानते हैं कि कोड रोट्स है। और यह आज यूआई के लिए विशेष रूप से सच है।

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

    एक और कमजोर क्षेत्र थीमिंग है। आज के रूप में, वहाँ विषयों के आसपास बहुत सारे हैं। शीर्ष 10 के लिए यहां देखें । लेकिन कुछ धीमी हैं, कुछ छोटी हैं, कुछ अधूरी हैं। जब मैं UI लिखता हूं तो मुझे इससे नफरत होती है और उपयोगकर्ता शिकायत करते हैं कि उनके लिए कुछ काम नहीं करता क्योंकि उन्होंने एक विषम विषय का चयन किया था।

  3. JGoodies, SwingX की तरह स्विंग के ऊपर एक और परत है। यह स्विंग का उपयोग करने के लिए और अधिक सुखद बनाने की कोशिश करता है। वेब साइट बहुत अच्छी लग रही है। चलो ट्यूटोरियल पर एक नज़र है ... हम्म ... अभी भी खोज ... पर लटका। ऐसा लगता है कि वेब साइट पर कोई प्रलेखन नहीं है। बचाव के लिए गूगल । नहीं, कोई उपयोगी ट्यूटोरियल बिल्कुल नहीं।

    मैं UI फ्रेमवर्क के साथ आत्मविश्वास महसूस नहीं कर रहा हूं जो संभावित नए प्रशंसकों से प्रलेखन को छिपाने के लिए इतनी मेहनत करता है। इसका मतलब यह नहीं है कि JGoodies खराब है; मैं अभी इसके बारे में कहने के लिए कुछ भी अच्छा नहीं पा रहा हूं लेकिन यह अच्छा लग रहा है।

  4. JavaFX। शानदार, स्टाइलिश। समर्थन है, लेकिन मुझे लगता है कि यह एक गंभीर यूआई फ्रेमवर्क की तुलना में एक चमकदार खिलौना है। यह भावना पेड़ के तालिकाओं जैसे जटिल यूआई घटकों की कमी की जड़ है। HTML प्रदर्शित करने के लिए एक वेबकिट-आधारित घटक है

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

  5. धुरी। पहली बार मैंने इसके बारे में सुना। यह मूल रूप से Java2D पर आधारित एक नया UI फ्रेमवर्क है। इसलिए मैंने इसे कल आजमाया। कोई स्विंग नहीं, बस थोड़ा सा AWT ( new Font(...))।

    मेरी पहली धारणा अच्छी थी। एक व्यापक प्रलेखन है जो आपको आरंभ करने में मदद करता है। अधिकांश उदाहरण लाइव डेमो के साथ आते हैं (नोट: आपके पास वेब पेज में जावा सक्षम होना चाहिए; यह वेब पेज में एक सुरक्षा जोखिम है ), इसलिए आप कोड और परिणामी एप्लिकेशन को एक साथ देख सकते हैं।

    मेरे अनुभव में, प्रलेखन की तुलना में अधिक प्रयास कोड में जाता है। धुरी डॉक्स को देखकर, बहुत प्रयास कोड में चला गया होगा। ध्यान दें कि वर्तमान में एक बग है जो आपके ब्राउज़र में काम करने के लिए कुछ उदाहरणों ( PIVOT-858 ) को रोकता है।

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

    JavaFX के साथ, यह ट्री टेबल कंपोनेंट ( PIVOT-306 ) जैसे कुछ उच्च स्तर के घटकों को याद कर रहा है । मैंने मेज दृश्य के साथ आलसी लोडिंग की कोशिश नहीं की। मेरी धारणा है कि यदि अंतर्निहित मॉडल आलसी लोडिंग का उपयोग करता है, तो यह पर्याप्त है।

    वादा किया। यदि आप कर सकते हैं, तो इसे आजमाइए।


ट्राई पिवट डेमो "किचन सिंक", कुछ समूहों को खोलने के बाद यह पूरे सीपीयू को खाता रहता है। यदि यह पिवट डिजाइन के कारण है, तो मैं निश्चित रूप से इसे अपनी परियोजनाओं में नहीं चाहता हूं।
प्रदर्शन नाम

लगता है कि मुझे समस्या का स्रोत मिल गया है और यह बाद के संस्करणों में तय हो गया है: apache-pivot-users.399431.n3.nabble.com/…
प्रदर्शन नाम

2
JavaFX 8 (जावा 8 और उससे अधिक के लिए) में एक ट्रीटेबल व्यू विजेट है। हालाँकि, JavaFX 2.2 (जावा 7 के लिए) में इसका अभाव है, और इसमें मानक त्रुटि और जानकारी डायलॉग का भी अभाव है: देखें stackoverflow.com/a/12760202/105137 । इसके अलावा ControlsFX विजेट लाइब्रेरी केवल जावा 8 के लिए उपलब्ध है: fxexperience.com/controlsfx
kostmo

12

SWT अपने आप में निम्न स्तर का है, और यह JNI के माध्यम से मंच के मूल विजेट का उपयोग करता है। यह स्विंग और एडब्ल्यूटी से संबंधित नहीं है। ग्रहण आईडीई और सभी एक्लिप्स आधारित रिच क्लाइंट अनुप्रयोग, जैसे वुज़ BitTorrent ग्राहक , SWT का उपयोग कर बनाया जाता है। इसके अलावा, यदि आप ग्रहण प्लगइन्स विकसित कर रहे हैं, तो आप आमतौर पर SWT का उपयोग करेंगे।
मैं लगभग 5 वर्षों से एक्लिप्स-आधारित एप्लिकेशन और प्लगइन्स विकसित कर रहा हूं, इसलिए मैं स्पष्ट रूप से पक्षपाती हूं। हालाँकि, मुझे SWT और JFace UI टूलकिट के साथ काम करने का व्यापक अनुभव है, जो इसके शीर्ष पर बनाया गया है। मैंने JFace को बहुत समृद्ध और शक्तिशाली पाया है; कुछ मामलों में यह SWT चुनने का मुख्य कारण भी हो सकता है। यह आपको कार्यशील UI को बहुत तेज़ी से कोड़ा मारने में सक्षम बनाता है, जब तक कि यह आईडीई-जैसा है (तालिकाओं, पेड़ों, देशी नियंत्रणों आदि के साथ)। बेशक आप अपने कस्टम नियंत्रणों को भी एकीकृत कर सकते हैं, लेकिन यह कुछ अतिरिक्त प्रयास करता है।


आपकी राय में, क्या कॉलम छँटाई और छानने के साथ ट्रीटेबल जैसा एक उन्नत घटक SWT + JFace के साथ एक बड़ा मुद्दा होगा?
netbrain 13

@netbrain: मैंने ऐसा कई बार किया है, यह JFace के साथ काफी सीधा है। यह वही है जो मुझे "आईडीई-जैसे" इंटरफ़ेस से मिला, शायद शब्दों का सबसे अच्छा विकल्प नहीं।
Zsolt Török

9

मैं एक और फ्रेमवर्क सुझाना चाहूंगा: Apache Pivot http://pivot.apache.org/

मैंने इसे संक्षेप में आज़माया और इससे प्रभावित हुआ कि यह आरआईए (रिच इंटरनेट एप्लीकेशन) फ्रेमवर्क एएलए फ्लैश के रूप में क्या पेश कर सकता है ।

यह जावा 2 डी का उपयोग करके यूआई प्रदान करता है, इस प्रकार स्विंग और एडब्ल्यूटी की (आईएमओ, फूला हुआ) प्रभाव को कम करता है।


1
मुझे आभास था कि नेटब्रेन डेस्कटॉप ऐप्स के बारे में पूछ रहा था। RIA चौखटे के लिए, GWT और वाडिन पर भी विचार करें। ये चौखटे आपको जावा में लिखने, संकलित करने और जावास्क्रिप्ट प्राप्त करने की अनुमति देते हैं जो सभी सामान्य वेब ब्राउज़रों पर बहुत अच्छी तरह से चलता है।
कॉस्टिस एवलिस

डेस्कटॉप अनुप्रयोगों के लिए धुरी लागू नहीं की जा सकती है?
netbrain

शायद यह परिभाषा की बात है, लेकिन RIA चौखटे मूल रूप से ब्राउज़रों में चलाने के लिए डिज़ाइन किए गए हैं।
कोस्टिस एविलास

2
@netbrain: हां, आप पिवट को डेस्कटॉप ऐप (JFrame) या एप्लेट (JApplet) के रूप में चला सकते हैं।
अगस्तस थू सिप

9

घुमाओ + स्विंगिंगएक्स + मिगुलेटआउट मेरी पसंद का संयोजन है। मिग्लीआउट 200 अलग-अलग लेआउट प्रबंधकों और बहुत अधिक शक्तिशाली माना जाता है। इसके अलावा, यह आपको अपने लेआउट को "डीबग" करने की क्षमता प्रदान करता है, जो जटिल लेआउट बनाते समय विशेष रूप से आसान है।


8

एक अन्य विकल्प क्यूटी जंबी का उपयोग करना है । इसमें C ++ की परेशानी के बिना Qt की सभी महानता (कई घटक, अच्छे प्रलेखन, उपयोग में आसान) हैं। मैंने इसे 3-4 साल पहले एक छोटे प्रोजेक्ट के लिए इस्तेमाल किया था, तब भी यह लगभग परिपक्व था।

आप यहाँ स्विंग बनाम क्यूटी के बारे में चर्चा देखना चाहते हैं


5

मेरी व्यक्तिगत राय: नेटबीन्स प्लेटफॉर्म के साथ मिलकर स्विंग के लिए जाएं।

यदि आपको उन्नत घटकों की आवश्यकता है (NetBeans ऑफ़र से अधिक) तो आप आसानी से समस्याओं (या JGoodies) के बिना SwingX को एकीकृत कर सकते हैं क्योंकि NetBeans प्लेटफ़ॉर्म पूरी तरह से स्विंग पर आधारित है।

मैं एक अच्छा प्लेटफ़ॉर्म के बिना एक बड़ा डेस्कटॉप एप्लिकेशन (या जो बड़ा होने वाला है) शुरू नहीं करूंगा जो अंतर्निहित यूआई फ्रेमवर्क पर निर्मित होता है।

दूसरा विकल्प ग्रहण RCP के साथ एक साथ SWT है, लेकिन "शुद्ध" स्विंग घटकों को इस तरह के अनुप्रयोग में एकीकृत करने के लिए कठिन (हालांकि असंभव नहीं है)।

सीखने की अवस्था NetBeans प्लेटफ़ॉर्म के लिए थोड़ी खड़ी है (हालांकि मुझे लगता है कि यह ग्रहण के लिए भी सच है) लेकिन कुछ अच्छी किताबें हैं जिनके बारे में मैं अत्यधिक सलाह दूंगा।


1
ध्यान दें कि स्विंगिंग घटक (AFAIU) है जो मौजूदा स्विंग घटकों के विस्तार या रचनाएं हैं। JGoodies OTOH PLAFs और लेआउट के बारे में है। लेकिन जैसा कि आपने कहा, या तो स्विंग के साथ समेकित रूप से एकीकृत होगा।
एंड्रयू थॉम्पसन

1
+1 स्विंग पर अपने विकास को आधार बनाएं। स्विंग को AWT के शीर्ष पर बनाया गया है और इसमें सभी प्लेटफार्मों पर समान दिखने वाले और व्यवहार करने वाले हल्के वजन वाले घटक शामिल हैं, इसलिए आपको सीधे AWT घटकों का उपयोग नहीं करना चाहिए। बड़ी संख्या में उत्कृष्ट बीन्स हैं जिन्हें आप आसानी से अपने विकास जीयूआई में जोड़ सकते हैं जैसे कि toedter.com JCalendar।
कोस्टिस एवलिस

1
@ PLAF और लेआउट के अलावा, JGoodies अधिक प्रदान करता है: सेम बाइंडिंग (प्रस्तुति मॉडल पैटर्न के लिए), सत्यापन और एक "JSR-296" फ्रेमवर्क (जो कि एक वाणिज्यिक है)।
jfpoilpret

3

आप JSR296 के आधार पर जावा डेस्कटॉप एप्‍लिकेशन के लिए भूल गए, जैसे नेटबाइन्‍स में अंतर्निहित स्विंग फ्रेमवर्क

AWT और JavaFX को छोड़कर आपके सभी डिबार किए गए फ्रेमवर्क स्विंग पर आधारित हैं, यदि आप स्विंग के साथ शुरुआत करेंगे तो आप इन सभी के लिए (स्पष्ट रूप से) समझ जाएंगे (बेस्ड फ्रेमवर्क)

ATW, SWT (ग्रहण), जावा डेस्कटॉप एप्लायंस (नेटबीन्स), स्विंगिंग, JGoodies

वहाँ सभी चौखटे (मैं JGoodies के बारे में अधिक कुछ नहीं जानता) incl। जावाएफएक्स ने लंबे समय तक कोई प्रगति नहीं की है, स्विंग के बहुत सारे फ्रेमवर्क को रोक दिया गया है, यदि नहीं तो नवीनतम संस्करण के बिना

बस मेरा विचार - उनमें से सबसे अच्छा है स्विंगिंग, लेकिन स्विंग के बारे में गहन ज्ञान की आवश्यकता है,

स्विंग और आधारित फ्रेमवर्क के लिए लुक और फील


AWT अवयवों पर उनका हिस्सा, स्विंग JCompoentns पर भाग, लेकिन AWT और स्विंग के बीच अंतर लागू, प्रशंसनीय और विरासत के तरीकों के साथ है, उदाहरण के लिए स्विंग JCompords सीधे (एपीआई) AWT से सीधे विरासत या
निहित

JSR296 मर चुका है। यह अब "बनाए रखा" नहीं है और इसके लिए समर्थन नेटबींस से हटा दिया गया है। (और इसके साथ शुरू करने के लिए यह वास्तव में अच्छा ढांचा नहीं था)
a_horse_with_no_name

@a_horse_with_no_name कि with same progressSWT, SwingX, नए मालिक, नए शिष्टाचार में सही
mKorbel

1
आईबीएम द्वारा विकसित SWT, स्विंग पर आधारित नहीं है, यह एक प्रतिस्पर्धी तकनीक है। स्विंग AWT का उपयोग करता है। JavaFX स्विंग पर आधारित नहीं है। यह पूरी तरह से एक नया ढांचा है। कुछ इसे स्विंग का उत्तराधिकारी कह रहे हैं, लेकिन अभी भी उस लड़ाई को बुलाना अपरिपक्व है। मैं इस समय बिल्कुल वही निर्णय ले रहा हूं, और स्विंग मेरा उम्मीदवार है, बस इस तथ्य के लिए कि यह सबसे परिपक्व है, फिर भी वास्तविक रूप से उपलब्ध है।
गॉर्डन

1
SwingX स्विंग का विस्तार है (यही कारण है कि इसे स्विंग ज्ञान की आवश्यकता होती है), वास्तव में, स्विंगिंग की कुछ विशेषताओं को स्विंग में ही रोल किया गया है।
गॉर्डन

3

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


जानकार अच्छा लगा! इसलिए JIDE ने स्विंग के आधार पर अपने स्वयं के घटकों का निर्माण किया ...
netbrain

हां, JIDE ने ग्रिड, पेड़, टेबल, ग्राफ और इस तरह के कवर करने वाले कुछ घटक बनाए हैं। जैसा कि मैंने कहा, यह मुफ़्त नहीं है, लेकिन समय दिया गया है कि इन चीजों को खुद बनाने में आपका समय लगेगा। इसके अलावा, जहां तक ​​मैं समझता हूं, JIDE के बारे में लचीला है कि ओपन सोर्स प्रोजेक्ट्स अपनी वेबसाइट के लिंक के बदले में अपने घटकों का उपयोग करें या 'अबाउट' डायलॉग में लोगो।
सबबटला

3

मैं स्विंग के साथ जाना होगा। लेआउट के लिए मैं JGoodies फॉर्म लेआउट का उपयोग करूंगा। यहाँ फॉर्म लेआउट पर श्वेत पत्र का अध्ययन करने के लायक है - http://www.jgoodies.com/freeware/forms/

यदि आप एक विशाल डेस्कटॉप एप्लिकेशन विकसित करना शुरू करने जा रहे हैं, तो आपको निश्चित रूप से एक रूपरेखा की आवश्यकता होगी। दूसरों ने नेटबीन्स ढांचे की ओर इशारा किया है। मुझे यह पसंद नहीं आया इसलिए एक नया लिखा जो अब हम अपनी कंपनी में उपयोग करते हैं। मैंने इसे सोर्सफोर्ज पर रखा है, लेकिन इसे ज्यादा डॉक्यूमेंट करने का समय नहीं मिला। यहाँ कोड ब्राउज़ करने के लिए लिंक है:

http://swingobj.svn.sourceforge.net/viewvc/swingobj/

शोकेस आपको दिखाना चाहिए कि वास्तव में एक साधारण लॉगऑन कैसे करना है ।।

मुझे पता है कि अगर आप इस पर कोई सवाल है तो मैं मदद कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.