2014-09-13 6 views
8

मैं निम्नलिखित कोड है। मैं नियंत्रक वस्तु कैसे प्राप्त कर सकता हूं?जावाएफएक्स - एफएक्सएमएल नियंत्रक कैसे प्राप्त करें? नियंत्रक वर्ग के लिए एक संदर्भ है fxml फ़ाइल में</p> <pre><code>Parent parent = FXMLLoader.load(Main.class.getResource("JanelaPrincipal.fxml")); </code></pre> <p>:


fxml:

<AnchorPane id="AnchorPane" fx:id="root" 
    prefHeight="768.0" prefWidth="1024.0" xmlns:fx="http://javafx.com/fxml/1" 
    xmlns="http://javafx.com/javafx/2.2" 
    fx:controller="br.meuspila.javafx.JanelaPrincipalController"> 
    ... 

उत्तर

26

एक FXMLLoader इन्स्तांत और एक वर्ग स्थिर लोड विधि के बजाय एक उदाहरण लोड विधि का उपयोग करें। फिर आप लोडर इंस्टेंस से नियंत्रक उदाहरण पुनर्प्राप्त कर सकते हैं।

FXMLLoader loader = new FXMLLoader(
    getClass().getResource(
    "customerDialog.fxml" 
) 
); 

Pane pane = (Pane) loader.load(); 

CustomerDialogController controller = 
    loader.<CustomerDialogController>getController(); 
controller.initData(customer); 

अधिक जानकारी के लिए देखें:

+1

यह मैं वास्तव में क्या जरूरत है। धन्यवाद! – ceklock

+1

यह वास्तव में सहायक है। धन्यवाद –

+0

yup, यह एक बहुत ही उपयोगी उत्तर था! यह भी सुनिश्चित करें कि जब आप FXMLLoader क्लास का उदाहरण बना रहे हों, तो आप इसे इस उत्तर में दिखाए गए अनुसार (.fxml फ़ाइल को निर्दिष्ट करके) करते हैं। मैं इसे सिर्फ नए FXMLLoader() के रूप में कर रहा था; और जब मुझे fxml टेम्पलेट फ़ाइल के लिए नियंत्रक तक पहुंचने का प्रयास किया गया तो वह मुझे एक नल पॉइंटर अपवाद दे रहा था। – user2407334

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

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