2013-04-12 5 views
7

मेरे आवेदन में दो अलग-अलग चरण हैं जो एक ही FXML फ़ाइल का उपयोग करने वाली स्क्रीन की सहायता करने वाली स्क्रीन हैं। 2 FXML फ़ाइलों को बनाने के बजाय, मैं केवल एक का उपयोग करना चाहता हूं और दो नियंत्रक हैं जो एक ही fxml को कॉल करते हैं।एकाधिक भिन्न नियंत्रकों के साथ जावाएफएक्स 1 एफएक्सएमएल फ़ाइल?

एकमात्र समस्या यह है कि नियंत्रक को FXML फ़ाइल में असाइन किया गया है। तो, नियंत्रक वर्ग में कोड के साथ असाइन किए गए नियंत्रक को बदलने का कोई तरीका है?

मैं वास्तव में प्रत्येक में नियंत्रक को बदलने के लिए एक FXML फ़ाइल को डुप्लिकेट करने से बचाना चाहता हूं। अग्रिम में धन्यवाद।


उत्तर

7

आप FXML फ़ाइल से fx:controller="" काम को हटाने और लोड होने के दौरान FXMLLoader के माध्यम से नियंत्रक असाइन कर सकते हैं।

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Your.fxml")); 
fxmlLoader.setController(this); 

try 
{ 
    fxmlLoader.load(); 
} 
catch (IOException exception) 
{ 
    throw new RuntimeException(exception); 
} 

Introduction to FXML section on custom components देखें।

+0

इस दृष्टिकोण का उपयोग करके आप '@ FXML' टैग का उपयोग करने से रोकते हैं। आपको उन्हें मैन्युअल रूप से सेट करना होगा, जो नेस्टेड विचारों के दौरान बोझिल हो सकता है। – Kiril

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