मैं केवल इस बात का जवाब दे सकता हूं कि मेरे लिए क्या काम किया है। अन्य टिप्पणीकारों ने बताया है कि जावा जीयूआई सामान्य रूप से गैर-देशी दिखने और महसूस करने की 'अस्वच्छ घाटी' में आते हैं, और मैं इस पर विवाद नहीं करता।
एक्शन एपीआई का अच्छा उपयोग करें। यह आपको आपके उपयोगकर्ता द्वारा किए जाने वाले विभिन्न कार्यों को बेहतर ढंग से करने की अनुमति देता है और आपको शॉर्टकट, एक्सेलेरेटर कीज, बटन और अन्य इनपुट ऑब्जेक्ट तक आसानी से वायर करने की अनुमति देता है।
एक उपयुक्त लेआउट प्रबंधक का उपयोग करें। GridBagLayout बेहद शक्तिशाली है, लेकिन मैं यह कहना चाहूंगा कि यह अत्यधिक मात्रा में टिप्पणियों के बिना अस्वीकार्य है। जब मैं सोनार जैसे स्थैतिक कोड विश्लेषण उपकरण चलाता हूं, तो एक पुराने GUI ऐप पर जो मैं बनाए रखता हूं, यह ग्रिडबग्स लेआउट को सही बनाने के लिए हमेशा बड़ी संख्या में जादू की संख्या को इंगित करता है। मुझे GroupLayout के साथ बहुत सफलता मिली है, जो पिक्सेल-पूर्ण संरेखण निर्दिष्ट करने से बचता है।
अगर आपको लगता है कि आपको JDialog की जरूरत है ... तो आप शायद नहीं। उपयोगकर्ता अनुभव के संदर्भ में डायलॉग बॉक्स भयानक हैं - इस एप्लिकेशन ने उन्हें हर मेनू और फॉर्म के लिए उपयोग करने का निर्णय लिया, और विचित्र तरीकों से हमेशा ऑन-टॉप नियमों को लागू करने के लिए। यह एक रखरखाव दुःस्वप्न में बदल गया जब हमें वास्तव में मेनू पर कुछ सतर्क करने की आवश्यकता थी। असुविधाजनक पर क्लिक करने से निराश क्यू - और इस तरह से अविश्वसनीय - संवाद।
जहां उपयुक्त हो, अपने स्वयं के मल्टीथ्रेडिंग को रोल करने के बजाय स्विंगवर्क का उपयोग करें। GUI पर नियमित अपडेट प्रदान करते हुए, SwingWorker को विस्तारित करना और कुछ लंबे समय तक काम करना बहुत आसान है। क्लाइंट अपडेट डाउनलोड करने के बारे में सोचें। यह आपके लिए शेड्यूलिंग थ्रेड शेड्यूलर हैंडल करेगा और आपको डाउनलोड प्रतिशत वापस देखने के लिए प्रकाशित करने देगा, ताकि आप अपने प्रोग्रेसबार या आपके पास क्या अपडेट हो सकते हैं।
यह सब मैं सुझाव दे सकता हूं, मेरे सीमित सीमित अनुभव में।