Reference 将WebEngine从一个.java文件引用到另一个.java文件
下面是使用WebEngine对象的文件Reference 将WebEngine从一个.java文件引用到另一个.java文件,reference,javafx-2,javafx,Reference,Javafx 2,Javafx,下面是使用WebEngine对象的文件ClientArea.java(位于文件夹demoapp中) public class ClientArea implements Initializable { public WebEngine engine; @Override public void initialize(URL url, ResourceBundle rb) { engine = browser.getEngine(); en
ClientArea.java
(位于文件夹demoapp中)
public class ClientArea implements Initializable {
public WebEngine engine;
@Override
public void initialize(URL url, ResourceBundle rb) {
engine = browser.getEngine();
engine.load("about:blank");
}
}
我想将其引用到另一个文件(Undecorator.java
),该文件位于文件夹insidefx.Undecorator中
如何进行此引用?我解决了如下类似问题:在加载fxml文件的位置,可以获取控制器的任何元素,并将其引用提供给其他控制器
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory());
fxmlLoader.setLocation(...); // set a URL for the ClientArea.fxml
try {
fxmlLoader.load();
} catch (IOException ex) {
...
}
ClientArea cacontroller = (ClientArea) fxmlLoader.getController();
WebEngine engine = cacontroller.getEngine(); // add a getter method in ClientArea
fxmlLoader.setLocation(...); // set a URL for the Undecorator.fxml
try {
fxmlLoader.load();
} catch (IOException ex) {
...
}
Undecorator ucontroller = (Undecorator) fxmlLoader.getController();
ucontroller.setEngine(engine); // add a setter method in Undecorator
您所说的“WebEngine示例”是什么意思?上面的例子是“使用WebEngine”。实际上,您可以使用此技巧引用任何对象(属于其他控制器)。