4
我想從我用FXMLoader加載的場景獲取控制器。用例是:JavaFX 2.0 + FXML。更新不同任務的場景值
- 我的JSON經理收到一個JSON對象
我發起的任務說明使用
Parent p = FXMLLoader.load(getClass().getResource("foo.fxml")); Scene scene = new Scene(p); stage.setScene(scene);
之後,新的場景,我有空的場景。
現在我這樣做,以填補部件
AnchorPane pane = (AnchorPane)((AnchorPane) scene.getRoot()).getChildren().get(0); for(Node node : pane.getChildren()){ String id = node.getId(); if(id.equals(NAME)){ ((TextField)node).setText(value); } }
我的問題,是有更簡單的方式來做到這一點?我在FXML指定控制器
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="526.0" minWidth="356.0" prefHeight="526.0" prefWidth="356.0"
xmlns:fx="http://javafx.com/fxml" fx:controller="bar.foo">
我想用綁定值(文本字段在這種情況下,所謂的名)
感謝實例提前
謝謝您的回答,這是使用node.lookup點。您顯示獲取控制器的方式對我無效,因爲我需要當前控制器實例。這種方式創建一個新的控制器和一個新的窗格。 – Javier 2012-04-11 16:04:04
爲什麼?使用此代碼而不是'FXMLLoader.load(getClass()。getResource(「foo.fxml」));'並且您將獲得與代碼中相同的窗格。 – 2012-04-11 16:27:11
@Javier。更新了答案。請看一看。 – 2012-04-11 16:44:10