Diskuze: JavaFX - volani metody v promenne controlleru, ne v controlleru
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Tudiz nechci mit controller plnej promennych ktere predstavuji sloupce a metod ktere predstavuji akce tlacitek.
Od toho ten kontroler je. Když už jsi si to udělal takhle, tak tu tabulku můžeš nechat v samostatné třídě, jen jí dodělej metody pro přidávání a odebírání řádku. Metody které představují akce tlačítek jinam než do kontroleru nedáš.
Vychazel jsem z toho jak se to dela treba v JSF. Tam muzu pomoci teckove notace vstupovat niz a niz v controlleru. tzn muze se skladat z mnoha subcontrolleru. A nebo v XCode (ObjC) muzu dane komponente rict ze ci je instanci a pak pristupovat k jejim metodam. Nicmene pokud to nejde udelam to tak ze budu mit jeden hlavni controller a pak do nej budu vkladat panely z jinejch .fxml ktery budou mit vlastni controllery.
Skládání layoutu pomocí různých view a kontroléru samozřejmě je
možné.
Ve FXML se na to používá direktiva include
fx:include="anotherView.fxml"
Dekuji tohle vypada velice dobre. Jen dotaz k tomu includu. Mam nejakou sanci se z nadrazeneho controlleru dostat k instanci classy ktera ridi includnute fxml. Nyni to delam tak, ze to vkladam programove a pritom si z loaderu taham i controller.
Jo, to není problém. Ten include napíšeš takto:
<fx:include fx:id="customId" source="another_view.fxml">
a v rodičovském kontroleru získáš instanci includovaného kontroleru takto:
@FXML
AnotherControllerClass customIdController;
Je velmi důležité, aby jsi dodržel název proměnný customIdController. Název se musí skládat z fx:id který jsi definoval ve FXML a dále musí na konci obsahovat slovo Controller. Pak se to úspěšně propojí a získáš tak referenci na vkládaný kontroler.
Používej tlačítko odpovědět.
Zobrazeno 7 zpráv z 7.