2009-04-23 15 views
8

मैंने कई रूपों के साथ एक काफी पर्याप्त जावा जीयूआई एप्लीकेशन बनाया है जहां सेटिंग्स .form फ़ाइलों में लॉक हो गई हैं। मुझे आश्चर्य है कि इन .form फ़ाइलों को वास्तविक जावा स्रोत कोड में कनवर्ट या रीफैक्टर करने का कोई तरीका है जिसे मैं संशोधित कर सकता हूं?जावा GUI बिल्डर .form फ़ाइलों को स्रोत कोड में कनवर्ट करें?

जीयूआई नेटबीन्स 6.5 का उपयोग करके बनाया गया था।

+0

मैंने सोचा कि .form फाइल नेटबीन्स विशिष्ट हैं और .java फ़ाइलों में विंडोज़ के लिए पूर्ण स्रोत कोड है। क्या यह सही नहीं है? क्या आप जावा फाइलों को संपादित नहीं कर सकते? – kazanaki

उत्तर

6

मेरी समझ यह है कि ".form" फ़ाइलों का उपयोग केवल नेटबींस जीयूआई बिल्डर द्वारा किया जाता है ताकि जीयूआई घटक कहां हैं। जब आप डिज़ाइन व्यू में घटक जोड़ते हैं, तो Netbeans स्वचालित रूप से वास्तविक स्रोत (.java) फ़ाइलों को अपडेट करता है। आप वास्तव में इन .java फ़ाइलों को सीधे एक बटन पर लेबल बदलने के लिए संशोधित कर सकते हैं, लेकिन यदि आप इसे Netbeans के भीतर करते हैं, तो यह आपके फ़ाइलों के मैन्युअल परिवर्तनों को नष्ट करने, स्रोत फ़ाइलों को स्वचालित रूप से पुन: उत्पन्न करने के लिए .form फ़ाइलों का उपयोग करेगा।

मेरे अनुभव में, एक बार जब आप .java फ़ाइलों को मैन्युअल रूप से संशोधित करने का निर्णय लेते हैं, तो .form फ़ाइलें सिंक से बाहर हो जाती हैं और अब आप Netbeans GUI बिल्डर का सही ढंग से उपयोग करने में सक्षम नहीं होंगे।

4

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

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

मैंने सीमित सफलता के साथ इस तरह की चीज की कोशिश की है और आखिरकार इन गड़बड़ी के सिरदर्द से बचने के लिए इंटरफ़ेस को फिर से लिखना है।

1

मैं स्रोत संपादित कर सकता हूं, मैंने समाधान खोजा। यह समस्या यह थी कि मैं जीयूआई बिल्डर में "AbsoluteLayout" का उपयोग कर रहा था। Netbeans कुछ छिपी हुई AbsoluteLayout कक्षा बना रहा था जो .form फ़ाइलों के अंदर था। अगर मैंने .form फ़ाइलों को हटा दिया है तो परियोजना अब निर्माण नहीं करेगी। समाधान को "फ्रीफॉर्म" लेआउट के रूप में बदलने के लिए था और फिर मैं .form फ़ाइलों को हटा सकता हूं और जीयूआई बिल्डर टिप्पणियों को हटा सकता हूं।

मदद लोगों के लिए धन्यवाद, मैं आपको +1 दोनों देता हूं।