【发布时间】:2014-05-27 17:29:18
【问题描述】:
我正在使用 JavaFX 编写小型应用程序,但遇到了一个问题。
我有 fxml 文件:
MainPane.fxml
Stream.fxml
Play.fxml
每个人都有自己的控制器:
MainPaneController.java
StreamController.java
PlayController.java
MainPane 中的位置是:
<GridPane fx:controller="model.MainController" fx:id="mainGrid"
xmlns:fx="http://javafx.com/fxml" alignment="CENTER" gridLinesVisible="true">
<children>
<fx:include source="Stream.fxml"/>
</children>
<children>
<fx:include source="Play.fxml"/>
</children>
</GridPane>
Play.fxml 有这个字段:
<TextField fx:id="searchField" text="Search" onAction="#search"/>
现在,当触发操作(输入按钮)时,我想访问并更改 Stream.fxml 中的标签,如下所示:
public class PlayController implements Initializable {
@FXML
private TextField searchField;
@FXML
protected void search() {
System.out.println("Search");
String text = searchField.getText();
//how to access Label in StreamController
}
}
我想避免像这样绑定
MainPaneController <-> StreamController
MainController <-> PlayController
并访问如下字段:
mainController.getStreamController.changeLabel(text)
因为我希望有更好的方法来做到这一点。
【问题讨论】:
标签: java binding javafx controllers