0
두 번째 행동에 대한 텍스트를 변경해야합니다 Pane
. 그걸 사용하려고 시도 :JavaFX의 기존 창에서 컨트롤러에 액세스하는 방법은 무엇입니까?
try{
HouseDA.setDefault(house);
FXMLLoader loader = new FXMLLoader(); //Loads an object hierarchy from an XML document.
loader.setLocation(MainApp.class.getResource("view/MainSideMenu.fxml")); // which document
loader.load();
MainSideMenuController controller = loader.<MainSideMenuController>getController();
controller.refreshHouseInfo();
}catch(Exception e){}
코드는 완벽하게 작동하지만 텍스트는 변경되지 않습니다. 디버깅 후 내 Pane
의 다른 인스턴스를 만들고 거기에 텍스트가 변경된 것처럼 보입니다. 기존 창이있는 컨트롤러에 액세스하여 텍스트를 바꿀 수 있습니까?
[이 질문] (https://stackoverflow.com/questions/47156903/accessing-fx -control-then-call-method-updates-the-label-text-issue), UI 요소를 생성하는 FXML을 (loader.load()를 통해)로드하지만, 그렇게하면 아무데도 표시되지 않습니다. 결과적으로 UI를 변경하는 컨트롤러의 메서드를 호출 할 때 아무 것도 볼 수 없습니다 (표시되지 않는 텍스트의 텍스트가 변경됨). –
* "기존 Pane의 컨트롤러에 어떻게 액세스 할 수 있습니까?"* FXML 파일에서 창을로드 (및 표시) 할 때 컨트롤러를 가져옵니다. 그런 다음 컨트롤러를 액세스해야하는 사람에게 전달하십시오. 어쩌면 https://stackoverflow.com/questions/29639881/javafx-how-to-use-a-method-in-a-controller-from-another-controller가 도움이 될 수 있습니다. –