2014-09-13 17 views
8

Aşağıdaki kodu vardır. Denetleyici nesnesini nasıl alabilirim?JavaFX - FXML Denetleyicisi nasıl edinilir? kontrol sınıfına yapılan bir gönderme yoktur fxml dosyasında</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"> 
    ... 

cevap

26

bir FXMLLoader örneğini ve bir sınıf statik yük yöntemi yerine bir örneği yük yöntemi kullanılır. Daha sonra denetleyici örneğini yükleyici örneğinden alabilirsiniz.

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

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

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

fazla bilgi için bkz:

+1

Bu tam olarak neye ihtiyacım olduğunu. Teşekkürler! – ceklock

+1

Bu gerçekten yararlıdır. Teşekkürler –

+0

yup, bu çok yardımcı bir cevap oldu! Ayrıca, FXMLLoader sınıfının bir örneğini oluştururken, bunu bu yanıtta gösterildiği gibi yaptığınızdan emin olun (ayrıca .fxml dosyasını belirterek). Ben sadece yeni FXMLLoader() olarak yapıyordum; ve bu bana fxml şablon dosyası için denetleyiciye erişmeye çalıştığımda bana boş bir işaretçi istisnası veriyordu. – user2407334

İlgili konular