2010-04-11 9 views
18

my previous question about GUI in java के उत्तर के लिए धन्यवाद। अब मुझे आश्चर्य है कि "वास्तविक" अनुप्रयोगों के लिए, एक अच्छा जीयूआई प्राप्त करने के लिए पेशेवरों द्वारा चुने गए समाधान क्या हैं। क्या आप स्विंग और जेकंपोनेंट्स का उपयोग करते हैं और बस "देखो और महसूस" बदलते हैं? क्या आप अजीब या दूसरी पुस्तकालय पसंद करते हैं?जावा में "पेशेवर" जीयूआई कैसे बनाते हैं?

क्षमा करता है, तो उस सवाल का अजीब लगता है, मैं एक छात्र हूँ और मैं वास्तव में नहीं जानता कि कैसे जावा असली दुनिया में प्रयोग किया जाता है ...

+2

@ जुल्स ओलेन: मैं जावा में लिखे गए वाणिज्यिक सॉफ़्टवेयर को भेजता हूं जो विंडोज़, ओएस एक्स और लिनक्स पर काम करता है। मैं स्विंग और इंटेलिजे के जीयूआई संपादक का उपयोग करता हूं (जो कि महान है कि यह स्वचालित रूप से आपके द्वारा बॉयलरप्लेट पॉइंटलेस लांघी अनैच्छिक स्विंग कोड को छुपाता है) और कुछ कस्टम-निर्मित घटक (ये प्रत्येक प्लेटफॉर्म पर 100% समान काम करता है)। एक कस्टम दोहरी/त्रि/चौकोर प्रगति पट्टी की तरह, कस्टम 'खोजने-जैसी-प्रकार-प्रकार' सूची (जैसे Google एक सुझाव के लिए उपयोग कर रहा है), और मेरे समस्या डोमेन के लिए कुछ और उन्नत कस्टम घटक। – SyntaxT3rr0r

+0

@WizardOfOdds: विंडोज और लिनक्स पर आप किस लाफ का उपयोग कर रहे हैं? क्या आप विंडोज और जीटीके शैली या स्विंग डिफ़ॉल्ट का उपयोग कर रहे हैं? – Jonas

+0

@ जोनास: विंडोज़ पर हम अपने उपयोगकर्ताओं को डिफ़ॉल्ट स्विंग लेआउट और निम्बस के बीच पसंद करते हैं। लिनक्स पर यह डिफ़ॉल्ट स्विंग है, जो कुछ भी होता है: लेकिन इसमें बहुत सारे मुद्दे हैं (एसओ पर बहुत सारे प्रश्न भी शामिल हैं)। उदाहरण के लिए हमारे पास "क्लोजेबल टैब" हैं और हम * 1.5 * के तहत चलाना चाहिए। इसलिए हमारे पास टैब आदि के लिए अपना स्वयं का रेंडरर है। यह एक * जंगली * दुनिया की असंगतताओं की दुनिया है :) सॉफ्टवेयर * लिनक्स पर * काम करता है और हम देवताओं को विकसित और परीक्षण करते हैं, लेकिन हम केवल ओएस एक्स पर बेच रहे हैं और विंडोज़ :) – SyntaxT3rr0r

उत्तर

9

हमारी कंपनी में हम स्विंग का उपयोग करते हैं, क्योंकि यह बॉक्स के बाहर जेवीएम द्वारा समर्थित है, लेकिन हम कुछ पैनलों और बटनों के लिए रंग कोडित पृष्ठभूमि रंगों का उपयोग करते हैं।

अगर हम कुछ अलग उपयोग करेंगे, जैसे कि SWT या Jambi हमें सभी प्लेटफ़ॉर्म के लिए उन ढांचे को भी रोल करना होगा, और सभी ओएसई और (समर्थित) जावा संस्करणों के लिए उन ढांचे का परीक्षण करना होगा। बिल्कुल अच्छा नहीं है।

हालांकि स्विंग के साथ एक अच्छा उत्तरदायी एप्लिकेशन बनाने के लिए यह काफी मुश्किल है; तो आपको वास्तव में स्विंगवर्कर और इसी तरह का उपयोग करने की आवश्यकता है। थोड़ा सा अनुभव के साथ हालांकि आप इस तरह एक अच्छा आवेदन बना सकते हैं।

और यहां तक ​​कि यदि यह विकसित करने के लिए सबसे तेज़ ढांचा नहीं है, तो डेवलपमेंट समय उपयोगकर्ता इंटरफ़ेस की कार्यात्मक आवश्यकताओं को परिभाषित करने और संस्करण जारी होने पर परीक्षण और समर्थन की तुलना में वास्तव में छोटा है।

उसने कहा, हमारा लक्ष्य डेस्कटॉप है। यदि आप मोबाइल डिवाइस को लक्षित करते हैं या वेब फ्रंटेंड की भी आवश्यकता है तो आपके विकल्प अलग-अलग हो सकते हैं।

4

मैं किसी को अब और AWT पसंद विश्वास नहीं है। स्विंग ने पूरी तरह से ग्यारह साल पहले इसकी आपूर्ति की, एडब्ल्यूटी 1.0 डिज़ाइन में त्रुटियों को सही करने के लिए इसके शीर्ष पर निर्माण किया।

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

+2

भगवान के प्यार के लिए, कृपया एडब्ल्यूटी का उपयोग न करें! एक वेब-ऐप के रूप में विकसित करने के कई फायदे हैं - जिनमें से कम से कम आसान तैनाती नहीं है। – Stephen

+0

@ स्टीफन एडब्ल्यूटी जीयूआई और वेब-एप्स पूरी तरह से अलग हैं। यह इस बात पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं। स्विंग हालांकि एडब्ल्यूटी पर एक फायदा है, हालांकि एडब्ल्यूटी पैकेज अभी भी इवेंट हैंडलिंग के लिए उपयोग किया जाता है। – aduric

+0

@aduric, मैं उन्हें वही पेश करने का इरादा नहीं था। मैं केवल दो चीजें बता रहा था 1) जीयूआई चूसना, और 2) एक वेब ऐप के कई फायदे हैं। लेकिन, जीयूआई और वेब-ऐप पूरी तरह से अलग नहीं हैं, आप आम तौर पर वेब-एप में स्थानीय रूप से जो करना चाहते हैं, वह कर सकते हैं। – Stephen

1

मेरा अनुभव है कि ज्यादातर संगठनों है कि बनाने के लिए अमीर जीयूआई अभी भी स्विंग का उपयोग करें, और मैन्युअल रूप से लेआउट प्रबंधकों के सभी खीज के माध्यम से जाना चाहते हैं, आदि

SWT के उपयोग काफी संगठनों का उपयोग कर रहे हैं कि करने के लिए सीमित है अपने मंच के रूप में ग्रहण आरसीपी। मुझे यकीन नहीं है कि यह इस मंच के बाहर क्यों नहीं पकड़ा गया है।

यह स्वीकार करना दुखी है, लेकिन जावा स्विंग जीयूआई आम तौर पर तब तक अच्छे नहीं दिखते जब तक कि आप उनके लिए अधिक देशी अनुभव नहीं बनाते। फिर भी, वे अक्सर विशेष रूप से विंडोज के लिए लिखे गए समकक्ष कार्यक्रमों के लिए सौंदर्यशास्त्र पर हार जाते हैं और जो WinForms जैसे विंडो एपीआई का उपयोग करते हैं।

+0

जानते हैं तो आपको नेटबीन्स में जीयूआई डिजाइनर का प्रयास करना चाहिए! –

+0

UIManager को सिस्टम क्लास को देखने और महसूस करने के लिए वास्तव में विंडोज़ पर ठीक है। सब कुछ मूल विंडोज अनुप्रयोग के समान दिखता है। यहाँ और वहां कुछ छोटे अंतर हैं (मुख्य रूप से एडब्ल्यूटी घटकों में) लेकिन स्विंग देशी दिखने का अनुकरण करने का अच्छा काम करता है। – bgroenks

0

मैकिंतोश ओएस एक्स अपना स्वयं का जावा रनटाइम बनाता है। वे स्विंग घटकों को वही दिखते हैं और देशी अनुप्रयोगों के रूप में महसूस करते हैं।

मैं कड़ाई से स्विंग का उपयोग करता हूं। मैं मैक और विंडोज दोनों के लिए वेब स्टार्ट के माध्यम से "असली" डेस्कटॉप एप्लिकेशन वितरित करता हूं जो उपयोगकर्ता के स्मार्ट कार्ड रीडर के साथ इंटरफ़ेस करते हैं।

नेटबीन्स आईडीई आपको अपने फॉर्म बनाने के लिए WYSIWYG तरीका प्रदान करता है। मैंने इसे आजमाया है, और यह बहुत साफ है, लेकिन हम अभी भी ग्रहण का उपयोग हमारे आईडीई के रूप में करते हैं और फॉर्म में फॉर्म डिज़ाइन करते हैं।

+1

नेटबीन WYSIWYG संपादक एक दुःस्वप्न है। यदि आप इसे बर्दाश्त कर सकते हैं, तो मैं JFormDesigner की अनुशंसा करता हूं, या बस लेआउट मैनेजर के साथ इसे करूँगा। यह पहले और अधिक काम हो सकता है, लेकिन लंबे समय तक आपके पास अधिक नियंत्रण होता है। – cdmckay

+0

क्षमा करें, यह नहीं है। आपको पूरा नियंत्रण मिल गया है कि कहां और सभी गुण और बाइंडिंग और क्या नहीं है। आपको यह जानना होगा कि कहां देखें। बीटीडब्ल्यू .: जहां तक ​​मुझे पता है, मैकोज़क्स * एडब्ल्यूटी * मैकोज़ एक्वा की तरह दिखता है, स्विंग नहीं करता है। – Tedil

+0

दुःस्वप्न ... क्यों? –

1

becuse इससे बाहर मानक JREs में समर्थित है हम आम तौर पर स्विंग का उपयोग डिब्बा। आम तौर पर हम नेटबींस में प्रारंभिक रूप डिज़ाइन और इवेंट हुकअप करते हैं और फिर इसे जो कुछ भी चाहते हैं उसे निर्यात करते हैं, उदाहरण के लिए, ग्रहण।

नेटबीन्स मानक पुस्तकालयों (साथ ही एक जार या दो को शामिल करने के लिए) का उपयोग करके शुद्ध जावा को थूकता है, इसलिए नेटबीन्स में फॉर्म को डिजाइन करने और बाद में किसी अन्य चीज़ पर जाने का कोई बड़ा सौदा नहीं है।

कुछ लोगों ने एक लेआउट प्रबंधक का उपयोग करके हाथ से फ़ॉर्म लेआउट करने का सुझाव दिया। मैं देखता हूं कि केवल एक विकल्प के रूप में यदि आप कुछ बड़ा और बहुत अच्छा बजट कर रहे हैं जिसे विज्ञापन infinitum बनाए रखा जाना है। अन्यथा यह इसके लायक होने के लिए बस इतना समय ले रहा है।

1

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

संबंधित मुद्दे