2010-09-22 13 views
6

क्या उपयोगकर्ता द्वारा LAF को हर बार एप्लिकेशन को पुनरारंभ करने की आवश्यकता के बिना स्विंग एप्लिकेशन के स्वरूप और अनुभव को बदलने का कोई विशिष्ट तरीका है?जावा स्विंग लुक को बदलने और एप्लिकेशन को पुनरारंभ किए बिना महसूस करने के लिए कैसे?

मैं ऐसे समाधान की तलाश में हूं जहां कोई कॉन्फ़िगरेशन संवाद से एलएएफ का चयन कर सके और यह एप्लिकेशन को पुनरारंभ करने के लिए उपयोगकर्ता को बताने के बिना सीधे गिरने के बिना लागू हो जाता है।

वर्तमान में मुझे एक गुण फ़ाइल में चयनित LAF याद है और किसी भी विंडो को खोले जाने से पहले इसे स्टार्टअप पर सेट करें।

आप पहली बार UIManager.setLookAndFeel फोन करके नया रूप की स्थापना की और महसूस करने की जरूरत:

+3

क्या यह काम नहीं करता है? http://stackoverflow.com/questions/2655929/lookandfeel-not-changing-in-ubuntu/2656085#2656085 –

+0

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

+0

@ टॉम लेकिन यह काम कर सकता है अगर यह बहुत जटिल नहीं है, और यह पूरी तरह से पुनरारंभ करने के अलावा किसी अन्य कामकाजी समाधान की एकमात्र आशा है, जिसे ओपी से बचना चाहता है ... –

उत्तर

5
Java tutorial से

UIManager.setLookAndFeel(lnfName); 

फिर, आदेश मौजूदा COMPONENTES नया रूप को प्रतिबिंबित करते हैं और महसूस करने के लिए, फोन प्रत्येक शीर्ष-स्तरीय कंटेनर (संवाद, फ्रेम ..) पर SwingUtilities.updateComponentTreeUI विधि। आप अपने निहित घटकों के आकार में परिवर्तनों को अनुकूलित करने के लिए प्रत्येक शीर्ष-स्तरीय कंटेनर का आकार बदलना चाह सकते हैं:

SwingUtilities.updateComponentTreeUI(frame); // update components 
frame.pack();         // adapt container size if required 
संबंधित मुद्दे

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